我有一个旧软件,但到目前为止它运行良好。它是一项服务,设置于
sudo update-rc.d zcam_101 defaults
sudo service zcam_101 start
昨天我不得不更改其中的一部分并删除了该服务。我不知道我做错了什么,但是当我再次尝试使用 update-rc.d 启动该服务时,我收到以下非常奇怪的错误:
Job for zcam_101.service failed because the control process exited with error code. See "systemctl status zcam_102.service" and "journalctl -xe" for details.
这很奇怪,Ubuntu 似乎创建了一个 systemd 服务并尝试启动它,但由于它是一个 upstart-rc.d 软件,因此无法工作。
我尝试从 systemd 中删除该服务,但它似乎在某个我找不到的地方保存了对该服务的引用。因此我尝试了以下操作:
systemctl stop zcam_101
systemctl disable zcam_101
rm /etc/systemd/system/zcam_101
rm /etc/systemd/system/zcam_101
systemctl daemon-reload
systemctl reset-failed
我搜索了从根目录开始的每个包含 zcam 的文件,但得到的是空列表。然后我可以使用 update-rc.d 安装脚本,但当我尝试启动它时,我得到了引用的错误。有人知道如何让 Ubuntu 将此脚本作为 upstart 作业处理,或者如何完全删除对不存在的 zcam_101.service 的任何引用吗?或者有人知道我如何遇到这个问题吗?非常感谢。
编辑1:我刚发现/run/systemd/generator.late/zcam_101.service
该命令会创建一个文件update-rc.d
。我也删除了这个文件,但这没有帮助。
编辑 2:(我混淆了结尾,因为我有自动生成的进程 zcam_101 到 zcam_104,所以不要混淆,如果数字不同,很抱歉。我把所有都改成了 101,以免混淆任何人。然而,问题发生在所有文件中。)输出systemctl cat zcam_101
# /run/systemd/generator.late/zcam_101.service
# Automatically generated by systemd-sysv-generator
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/zcam_101
Description=LSB: SCS ZCam server 101
After=remote-fs.target
After=systemd-journald-dev-log.socket
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/zcam_101 start
ExecStop=/etc/init.d/zcam_101 stop