Luk*_*oll 4 systemd sysvinit daemon init.d start-stop-daemon
我正在编写一个守护进程来使用 jsvc 和这个(可能是 pre-systemd)教程在无头Ubuntu 16.04 机器上管理我的 Java 应用程序,并且尽可能运行,收到错误update-rc.d mydaemon enable
update-rc.d: error: mydaemon Default-Start contains no runlevels, aborting
已经用Google搜索了一下周围,这似乎有一些做的(相当?)最近将systemd,我已经证实与运行pidof systemd。
我如何实现与启动时相同的行为update-rc.d(更重要的是通过停止服务/etc/init.d/mydaemon stop而不是仅仅终止进程,因为 Java 应用程序需要清理)。而且是systemd和update-rc.d不同的系统,还是systemd只是改变后者如何工作的?
我没有 Ubuntu 16.04 来对此进行测试,也没有为您提供许多详细信息,但 systemd 具有兼容性功能,可以让旧/etc/init.d脚本继续工作。而不是使用update-rc.d来启用你的守护进程,使用 systemd 本机命令等效:
sudo systemctl enable mydaemon
Run Code Online (Sandbox Code Playgroud)
如果这仍然产生相同的错误,请将缺少的行添加到脚本的起始注释集中:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
Run Code Online (Sandbox Code Playgroud)
### BEGIN INIT INFO和### END INIT INFO线之间,然后再试一次。请参阅这些行的LSB 内核说明。您还可以使用以下命令显式启动守护程序
sudo systemctl start mydaemon
Run Code Online (Sandbox Code Playgroud)
并询问它的状态
sudo systemctl status -l mydaemon
Run Code Online (Sandbox Code Playgroud)
请参阅man systemd-sysv-generator兼容性功能。请参阅此 wiki以将 System V 或像您这样的新贵脚本转换为本机 systemd 单元。
| 归档时间: |
|
| 查看次数: |
15498 次 |
| 最近记录: |