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
価値を捉えたい活動(実行)私のスクリプトのシェルスクリプトでこれをどのように実行しますか?
答え1
コマンドの出力を解析できますsystemctl status
。
ただし、サービスが実行されているかどうかに関する情報を取得するより簡単な方法は、is-active
サブコマンドを使用することですsystemctl
。たとえば、
user@host:~$ systemctl is-active postfix
active
サービスが有効になっていない場合、返される文字列はですinactive
。
したがって、スクリプトから返された文字列(アクティブまたは非アクティブ)と上記のコマンドの戻りコードを確認できます。サービスがアクティブの場合、コマンドはゼロを返し、そうでない場合はゼロ以外の戻りコードで再実行されます。
挨拶:)