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,否則它將以非零返回程式碼重新執行。
問候 :)