systemctl不能识别我的服务:默认启动不包含运行级别,放弃

我想定义一个简单的服务在启动时启动,在Ubuntu服务器16.10上。 所以我创build了一个/etc/init.d/mydaemon

我不知何故把新贵和systemd搞混了:起初我以为我必须设立一个新贵的服务。 所以在将我的文件转换为新贵的语法之后,我运行了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. 

问题在于文件的位置,在Ubuntu服务器上,它预计在/etc/systemd/system/etc/systemd/system /etc/init.d/ /etc/systemd/system用于传统文件。

只需要添加@CharlesB的答案 – 当我进入这个状态时,我可以简单地将文件从/etc/init.d/移动到/etc/systemd/system/然后重新运行命令并正常工作:

 sudo mv /etc/init.d/mydaemon /etc/systemd/system/ sudo systemctl enable mydaemon