将应用程序从 upstart 迁移到 systemctl 失败并显示“死亡”

将应用程序从 upstart 迁移到 systemctl 失败并显示“死亡”

这个领域的新手,并尝试在 Ubuntu 20.04.6 LTS 上设置这个项目

https://github.com/thoukydides/heatmiser-wifi

该项目不再维护,但说明中谈到使用 upstart 来注册守护进程。我知道 upstart 已被弃用并被 systemctl 取代。我根据当前的 upstart 文件设置了一个 systemctl 文件,如下所示。

[单位] 描述=HeatmiserDaemon After=mysql.service

[服务] ExecStart=/usr/bin/perl /usr/local/bin/heatmiser_daemon

[安装] WantedBy=多用户.target

我已将其保存到 /etc/systemd/system/heatmiser-daemon.service,并且能够注册该服务并启动它。检查其状态显示如下:

heatmiser-daemon.service - HeatmiserDaemon 已加载:已加载(/etc/systemd/system/heatmiser-daemon.service;已启用;供应商预设:已启用)活动:自 Sun 2023-11-19 15:41:40 UTC 起不活动(已死亡) ; 15秒前进程:2213 ExecStart=/usr/bin/perl /usr/local/bin/heatmiser_daemon (code=exited, status=0/SUCCESS) 主PID: 2213 (code=exited, status=0/SUCCESS)

但是,在查询正在运行的服务时,却没有显示。当我运行 systemctl --type=service --state=dead 时显示如下:

heatmiser-daemon.service 加载非活动死 HeatmiserDaemon

所以在我看来,该服务正在运行并调用相关的 .pl 文件,但它似乎正在过早退出。

我现在不确定如何进一步排除故障,因此询问是否有任何日志文件等可以帮助我查看守护进程正在做什么的建议。应用程序日志文件此时也没有提供任何帮助。

欢迎任何建议或指点。

谢谢

相关内容