如何安装 init.d 脚本?

如何安装 init.d 脚本?

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

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

现在当我尝试启动它时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来启用 init.d 脚本,因此尝试:

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

所以我尝试安装服务 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 脚本?如能得到任何帮助我将不胜感激。

更新1:

当我尝试时:

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

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

更新2:

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

答案1

将脚本复制到位时,不要忘记使其可执行并由 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

答案2

您的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来启动守护进程。

答案3

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

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

然后参阅insserv -hman insserv寻求帮助。

您也可以尝试:

sudo update-rc.d celeryd defaults

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

答案4

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

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

相关内容