Bashスクリプトでプロセスの状態をブール値として使用する

Bashスクリプトでプロセスの状態をブール値として使用する

私はまだLinuxスクリプトに慣れていませんが、パラダイムでプログラミングすることには慣れていません。したがって、私の質問に非常に明確な答えがある場合は、許してください。

背景:プロセスが開始されたことを確認し、まだ起動していない場合は開始する起動スクリプトを作成したいと思います。より具体的に再起動した後、iptables、fall2ban、asterisk、mysqldが正常に起動したことを確認したいと思います。

私はスクリプトが特定のサービスの状態を真/偽の方法で決定したいと思います。 IEサービスが有効になっているかどうかに応じて、スクリプトでtrueまたはfalseを提供したいと思います。

フォーラムで見つけたいくつかの「ps -aux」と「ps -ef」オプションを試しましたが、目的の結果が得られなかったか、説明が正しく理解されていない可能性があります。

私はサービスが意味のある方法で実行されていることを確認し、その結果を使用して起動スクリプトの論理フローを確認したいと思います。

回答に事前に感謝し、質問が間違った場所に投稿された場​​合はお詫び申し上げます。

ベストアンサー1

いくつかのおおよそのテストでは、私のシステムでservice実行されていないサービスの状態を確認すると、ユーティリティは終了コード3を返すことがわかりました。したがって、これはあなたに役立ちます:

for svc in iptables fail2ban asterisk mysqld; do
    if ! service "$svc" status > /dev/null 2>&1; then
        echo "$svc is either not running or is an indeterminate state."
    fi
done

おすすめ記事