開始/停止が完了するのを待つスクリプトの作成

開始/停止が完了するのを待つスクリプトの作成

リモートサーバーにデプロイする必要があるアプリケーション用のビルドスクリプトを作成しようとしています。スクリプトは実行中のTomcatインスタンスを終了し、いくつかの操作(ファイルのコピー/移動)を実行し、Tomcatインスタンスを再起動してから、2番目のノードでプロセスを繰り返す必要があります。

個々のステップは非常に簡単です。私が直面する困難は、時間を制御することです。スクリプトがファイルの移動を開始する前に、Tomcatアプリケーションサーバーがシャットダウンされていることを確認したいと思います。また、2番目のインスタンスでシャットダウンを開始する前に、サーバーの起動が完了していることを確認したいと思います。

手動で「スタンバイ」タイマーを設定する以外に、シェルスクリプトでこれを行う方法はありますか?

ベストアンサー1

systemctlサービスの状態を照会するために使用できます。

systemctl is-active tomcat.service

~から手動

アクティブモードで...

指定されたデバイスのうちアクティブな状態(つまり実行中)があることを確認してください。 1つでも有効な場合は終了コード0を返し、それ以外の場合は0以外の値を返します。 --quiet を指定しないと、現在のデバイス状態も標準出力として出力されます。

同じマニュアルには、systemctl status <unit>終了状態に明示的に依存することが「不完全」であると見なされるという内容が記載されています。

おすすめ記事