我创建了一个 LSB 格式的 init 脚本,并将其复制到 /etc/init.d 目录。我可以手动启动、停止、查看服务状态,一切正常。然后,我尝试通过以下方式将服务设置为使用运行级别自动停止/启动:
update-rc.d service defaults
我看到如下警告:
update-rc.d:警告:xxx 启动运行级别参数(无)与 lsb 默认启动值(3 4 5)不匹配。
并且 initctl list”没有显示我的服务。我需要执行什么步骤才能使该服务注册或正确显示?(我知道在 RedHat 上它是“chkconfig --add xxx”)但我对 Ubuntu 不太了解。
答案1
initctl
是 Uubuntu 的 upstart 机制的一部分。initctl list
仅显示 upstart-jobs 的状态。您的脚本确实是 SysV init 脚本。
要列出 SysV 初始化脚本的状态,请使用以下命令:
service --status-all
您的服务应该列在那里。
要在/etc/rcN
文件夹中创建链接,请使用以下命令:
update-rc.d your_init_script defaults
来自的手册页update-rc.d
:
如果使用默认值,则 update-rc.d 将建立链接以在运行级别 2345 中启动服务并在运行级别 016 中停止服务。