有没有办法让 systemd 服务在停止时关闭系统?

有没有办法让 systemd 服务在停止时关闭系统?

我有几个 Linux 机器,每个机器都运行着一个服务。这是这些机器上运行的唯一重要进程。但是,有时由于服务中的一些内部状态变化,它会正常停止。我正在寻找一种在发生这种情况时关闭整个系统的惯用方法。基本上,我希望 systemd 在myservice服务不再运行时停止系统。

是否有捷径可寻?

我目前所做的是开发另一项服务myservice-monitor,用于监控myservice,当其停止时,myservice-monitor关闭系统。一切正常,但我认为一定有一种方法可以以更惯用的方式解决这个问题...

答案1

你可以使用 来执行此操作systemd,尽管我不知道这样做是否可取。如果服务在升级过程中崩溃或需要重新启动,机器也会在这些情况下关闭!

您可以将其添加到systemd您的服务的单元文件中:

 ExecStopPost=/sbin/halt

man systemd.service参阅有关的完整文档和免责声明ExecStopPost

相关内容