我正在尝试安装一个 init.d 脚本,以运行 celery 来调度任务。这是我遵循的步骤:
现在,当我尝试通过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
Run Code Online (Sandbox Code Playgroud)
它还说使用 utils like insservto enable init.d script 所以试过:
insserv /etc/init.d/celeryd 但它抛出错误 insserv: command not found
所以我尝试安装insserv sudo apt-get install insserv。但它说安装了aleady:
insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.
Run Code Online (Sandbox Code Playgroud)
那么如何安装init.d脚本呢??任何帮助将不胜感激。
当我尝试:
$ sh -x /etc/init.d/celeryd start
Run Code Online (Sandbox Code Playgroud)
它揭示了一些errors。可能这就是服务无法启动的原因。
我在运行时清除了所有错误$ sh -x /etc/init.d/celeryd start但仍然sudo /etc/init.d/celeryd start抛出command not found错误
Dav*_*due 82
当您将脚本复制到位时,不要忘记使其可执行并由 root 拥有:
sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd
Run Code Online (Sandbox Code Playgroud)
安装后,您可以将其设置为在启动时自动启动:
sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable
Run Code Online (Sandbox Code Playgroud)
Ala*_*Ali 57
您的celeryd脚本可能无法执行,这sudo /etc/init.d/celeryd就是返回command not found. 因此,您首先需要使其可执行。
为此,请运行以下命令:
sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd
Run Code Online (Sandbox Code Playgroud)
第一行将权限更改为-rwxr-xr-x,第二行确保文件的所有者和组所有者为root。
完成此操作后,我假设您将需要使用sudo /etc/init.d/celeryd start来启动守护程序。