CentOs7ディストリビューションにバインドサーバーを自動的にインストールするスクリプトを書いています。
systemctl status
で立ち往生しています。これは、エラーコードを生成しないためです(ステータスはエラーではないため、正しいです)。
私が欲しいのは、サービスが開始されている(アクティブである)かどうかを確認することです。これを行うための最良かつ効率的な方法は何ですか?
サービスがアクティブかどうかを確認する最良の方法は、systemctl is-active
コマンドを使用することです。
# systemctl start sshd
# systemctl is-active sshd >/dev/null 2>&1 && echo YES || echo NO
YES
# systemctl stop sshd
# systemctl is-active sshd >/dev/null 2>&1 && echo YES || echo NO
NO
シェルスクリプトをチェックインする場合は、次の操作を実行できます。
if (systemctl -q is-active some_application.service)
then
echo "Application is still running."
exit 1
fi
アプリケーションが実行されていないかどうかを確認するには、条件に感嘆符を追加するだけです。