如何安装init.d脚本?

我正在尝试安装init.d脚本,以运行celery来安排任务。 以下是我遵循的步骤:

  • 复制文件celeryd并将其粘贴到文件夹/etc/init.d/
  • 在文件夹/ etc / default /中创建了一个配置文件celeryd

现在,当我尝试通过sudo /etc/init.d/celeryd start启动它sudo /etc/init.d/celeryd start ,它会抛出错误sudo: /etc/init.d/celeryd: command not found

我搜索了如何安装init.d,我得到了这个问题 。

它说发出一个uname -a ,当我这样做时,我得到了这个:

 Linux capsonesystem8-desktop 3.2.0-43-generic-pae #68-Ubuntu SMP Wed May 15 03:55:10 UTC 2013 i686 i686 i386 GNU/Linux 

并且它说使用像insserv这样的utils来启用init.d脚本如此尝试:

insserv /etc/init.d/celeryd但它会抛出错误insserv: command not found

所以我试着安装insserv sudo apt-get install insserv 。 但它说安装了:

 insserv is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded. 

那么如何安装init.d脚本? 任何帮助将不胜感激。

UPDATE1:

我试过的时候:

 $ sh -x /etc/init.d/celeryd start 

它揭示了一些errors 。 可能这就是服务无法启动的原因。

UPDATE2:

当我运行$ sh -x /etc/init.d/celeryd start时我清除了所有错误但仍然是sudo /etc/init.d/celeryd start throws command not found错误

您的celeryd脚本可能不可执行,这就是sudo /etc/init.d/celeryd返回command not found 。 所以,你需要先让它可执行。

为此,请运行以下命令:

 sudo chmod 755 /etc/init.d/celeryd sudo chown root:root /etc/init.d/celeryd 

第一行将权限更改为-rwxr-xr-x ,第二行确保文件的所有者和组所有者为root

完成后,我假设你需要使用sudo /etc/init.d/celeryd start来启动守护进程。

将脚本复制到位时,不要忘记将其设为可执行文件并由root拥有:

 sudo chmod +x /etc/init.d/celeryd sudo chown root:root /etc/init.d/celeryd 

安装完成后,可以将其设置为在启动时自动启动:

 sudo update-rc.d celeryd defaults sudo update-rc.d celeryd enable 

如果在运行insserv时遇到command not found错误,可以通过运行以下命令来修复它:

 sudo ln -s /usr/lib/insserv/insserv /sbin/insserv 

然后看insserv -hman insserv寻求帮助。

您也可以尝试:

 sudo update-rc.d celeryd defaults 

资料来源: https : //askubuntu.com/a/334043/147044

这是在引导时自动启动守护程序的命令序列:

 sudo cd /etc/init.d sudo chown root:root celeryd sudo chmod 755 celeryd sudo ln -s /usr/lib/insserv/insserv /sbin/insserv sudo insserv celeryd