我正在为名为 Retrospect 的备份软件客户端编写一个 systemd 脚本。该软件不遵循任何典型的 Linux 操作方式。从程序中获取状态意味着正在运行retrocpl -status
。其中包含重要且当前 systemd 未自动收集的信息。可以以某种方式将其添加到状态输出中吗?
[Service]
ExecStart=/usr/local/retrospect/client/retroclient
ExecStop=/usr/local/retrospect/client/retrocpl -stop
Restart=on-failure RestartSec=60s
我使用的是 Ubuntu 16.04,它的 systemd 229。
$ systemd --version
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN
$ lsb_release -d
Description: Ubuntu 16.04.1 LTS
编辑:删除了维兰德指出的错误信息。谢谢!
答案1
systemd 有一个协议,应用程序可以将消息发送到服务管理器,这些消息显示在systemctl status
.为了获得最佳结果,必须在应用程序本身中实现它。应用程序必须主动发送状态通知。
进一步阅读
- 伦纳特·珀特林 (2010)。
sd_notify()
。 systemd 手册页。 Freedesktop.org。 - 伦纳特·珀特林 (2010)。
systemd-notify
。 systemd 手册页。 Freedesktop.org。 - 乔纳森·德博因·波拉德 (2015)。 ”由于故意破坏名义上的服务器而限制了采用有通过了协议”Unix 守护进程的就绪协议问题。经常给出的答案。
- 乔纳森·德博因·波拉德 (2015)。 ”提取客户端凭据时使用同步协议”Unix 守护进程的就绪协议问题。经常给出的答案。