当前位置: 首页>>技术教程>>正文


如何安装init.d脚本?

, ,

问题描述

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

  • 复制了文件celeryd并将其粘贴到文件夹/etc/init.d/中

  • 在文件夹/etc /default /中创建了一个配置文件celeryd

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

我搜索了如何安装init.d,我得到了这个SO-question

它说要发行一个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抛出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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1163.html,未经允许,请勿转载。