我正在尝试安装一个 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 -h
或man insserv
寻求帮助。
您也可以尝试:
sudo update-rc.d celeryd defaults
答案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