![使用 python 将通知从一个 systemd 单元发送到另一个 systemd 单元?](https://linux22.com/image/229942/%E4%BD%BF%E7%94%A8%20python%20%E5%B0%86%E9%80%9A%E7%9F%A5%E4%BB%8E%E4%B8%80%E4%B8%AA%20systemd%20%E5%8D%95%E5%85%83%E5%8F%91%E9%80%81%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%20systemd%20%E5%8D%95%E5%85%83%EF%BC%9F.png)
我有一个 systemd 单元“my-app”,它运行我的主 python 应用程序,但我希望它在远程服务器上有新版本时自动更新。检测由同一操作系统上的另一个 python systemd 单元(我们称之为“watch-app”)监视,该单元执行检查、下载并用新文件替换旧文件,并向“my-app”发送通知,以便它可以将其状态更改为“准备更新”之类的状态。
我正在寻找至少执行此任务的最佳策略。我发现通知但它没有清楚地解释如何接收通知,而且我找不到任何相关教程。
也许我走错路了?任何帮助将不胜感激。谢谢
答案1
sdnotify
用于服务与 systemd 通信其状态已更改(例如,取决于Type=
服务的状态,何时完成启动)。
如果您想在服务之间交换信息,请按照您喜欢的方式进行;通常,UNIX 域套接字是一种简单的方法,但dbus
如果您需要服务检测等,这是一个很好的方法。
您可以让观察服务器简单地调用 systemd 来停止受影响的服务,然后更新其文件,然后再次调用 systemd。没必要把事情搞得太复杂!