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