我想定义一个在启动时启动的简单服务,位于 Ubuntu 服务器 16.10 上。所以我创建了一个/etc/init.d/mydaemon
我不知何故在 upstart 和 systemd 之间搞砸了:起初我以为我必须设置一个 upstart 服务。因此,在将我的文件转换为新贵语法后,我运行了update-rc.d mydaemon defaults
.
我发现了我的错误并运行update-rc.d mydaemon remove
,转换为 systemd 语法,然后运行systemctl enable mydaemon
,但得到错误:
mydaemon.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mydaemon
update-rc.d: error: mydaemonDefault-Start contains no runlevels, aborting.
将 sysv 脚本从 redhat box 移植到 ubuntu 时,我遇到了同样的错误。我需要在脚本中添加一些标题
在https://askubuntu.com/questions/909523/default-start-contains-no-runlevels-aborting中找到
问题是文件的位置,在它期望的 Ubuntu 服务器上
/etc/systemd/system
,/etc/init.d/
是用于遗留文件的。只是为了补充@CharlesB的答案-当我进入这种状态时,我能够简单地将文件从
/etc/init.d/
to移动/etc/systemd/system/
并重新运行命令并且它工作正常:我遇到了同样的错误,我将其修复为默认启动信息,如下所示:
更改自:
至:
:wq
root@kali:/etc/init.d# systemctl enable greenbone-security-assistant
使用 /lib/systemd/systemd-sysv-install 将 greenbone-security-assistant.service 的状态与 SysV 服务脚本同步。
执行:/lib/systemd/systemd-sysv-install 启用 greenbone-security-assistant