在Xenial上的invoke-rc.d在守护程序被杀死时不起作用



i使用an/etc/init.d脚本启动守护程序。即使守护程序出于异常原因(杀死,SEG缺陷等(停止跑步,我也可以从Invoke-rc.D守护程序开始(或服务守护程序开始(。另外,Invoke-rc.d守护程序状态将以非零值返回(我将其用于脚本,该脚本将每10秒检查一次守护程序的状态,并在不运行时重新启动(。

转到Xenial和Systemd,如果守护程序被杀死,则Invoke-rc.D守护程序开始行不通,并调用RC.D守护程序状态表示守护程序仍在运行(以0退出(。<<<<<<<<<<<</p>

我知道Systemd可以处理初始文件,但是看起来此角案件无法正确处理。

在SystemD中,您可以使用SuccessExitStatus = Exit_code覆盖此情况,但是当Systemd使用来自Trusty的INIT脚本时。

关于如何修改我的初始文件覆盖该案例的任何想法

我听说您不想创建一个Systemd .service文件,但是它可能比您想做的要快的速度要快,这是让Systemd管理传统SYSV的速度init脚本。当您很快发现时,间接层的额外层增加了错误的复杂性和其他潜力。

没有看到您要工作的init.d脚本,这并不清楚问题可能是什么。

至于维护附加版本的时间 - 除非对服务的真正根本性随时间变化,因此文件不应真正更改,因此额外的维护时间应接近零。

要查看以设置.service文件的关键文档是man systemd.serviceman systemd.unit和可能的man systemd.exec。但是最简单的解决方案可能只是从可比服务复制/粘贴/修改.service文件。

最新更新