使用systemd,如何识别服务中的冷启动与重启?

时间:2017-01-11 11:16:11

标签: linux debian startup systemd

我正在尝试在Debian上执行systemd服务。但是,我需要根据它是启动'冷'还是重启来改变逻辑。

我目前有run-application.service,如下所示:

[Unit]
Description=Run application

[Service]
Type=oneshot
ExecStart=/usr/bin/run-application

[Install]
WantedBy=graphical.target

我希望在每次启动时调用程序,但是在重启时需要修改内部逻辑。实现这一目标的最简单/最好的方法是什么?

1 个答案:

答案 0 :(得分:4)

Foch将军是对的。创建一个新的systemd服务,这是由reboot.target需要的,并在文件系统的某处留下一个“标记”,可以在重启时获取。我不建议把它放在/ tmp中,因为/ tmp的清理是每次安装/ tmp时由一个upstart脚本完成的 - 实际上,这意味着在每次启动时。我会把它放在你知道会坚持的目录中。这样,你可以知道你是否来自重启,你可以合理地假设你正在启动的任何其他时间都是“冷”。这将解决机器失去电力等情况。