如何向 systemd 服务发送待关闭消息

如何向 systemd 服务发送待关闭消息

我使用的是启用了自动更新程序的 Fedora CoreOS,这非常适合我的用例。目前,当以交互方式登录时,系统会通过控制台警告即将关机/重启,其机制与答案中描述的相同,例如 从服务器向所有客户端发送关闭消息

但是,该服务器的“实际”用户不是具有 SSH 访问权限的 Linux 用户,而是访问 IRC 或其他服务等服务器的用户。我想“捕获”关闭警告消息并将其转发给每个服务,以便它们可以广播它。

podman-generate-systemd这些服务使用通过 systemd( )用户单元运行的非特权 podman/docker 容器进行编排。

我可以(滥用)使用ExecStopPresystemd 单元中的设置来总是 sleep 5m在关闭设备之前。但这并不是我想要的,因为我希望能够立即重新启动/停止服务,方法是使用 手动完成systemctl --user stop/restart

我目前看到两种可以实现此目的的方法:

  1. 为单位提供某种方式来收听墙上的信息并转发它们
  2. --ignore ExecStopPre在控制台上指定的某种方式。

后者虽然不符合人体工程学,但可以使用 来实现systemctl --user edit --runtime。然而,第二种方法有(滥用)使用 ExecStopPre 的停机时间,而它可能已经用于其他目的。

尽管如此,我还是很乐意听到关于如何实现 (1) 或使 (2) 更易于操作的想法。或者甚至完全不同的解决问题的方法。

相关内容