telegraf
当前机器上正在运行一个活动服务( )。想要自动化几个步骤,其中首先是检查服务是否从shell script
.
我正在运行systemctl status telegraf
命令来手动检查服务的状态。输出是
telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB
Loaded: loaded (/usr/lib/systemd/system/telegraf.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-05-19 12:26:17 UTC; 3 weeks 5 days ago
Docs: https://github.com/influxdata/telegraf
Main PID: 1297 (telegraf)
Tasks: 9 (limit: 49778)
Memory: 106.3M
CGroup: /system.slice/telegraf.service
└─1297 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d
我想捕捉价值活动(运行)在我的脚本中,如何在 Shell 脚本中执行此操作?
答案1
您可以解析命令的输出systemctl status
。
但获取有关服务是否正在运行的信息的更简单方法是使用 的is-active
子命令systemctl
。例如:
user@host:~$ systemctl is-active postfix
active
如果服务未激活,则返回的字符串为inactive
。
因此,在脚本中,您可以检查返回的字符串(活动或非活动),也可以检查上述命令的返回代码。如果服务处于活动状态,命令将返回 0,否则它将以非零返回代码重新运行。
问候 :)