サービスが実行されていることを確認するスクリプトbash

サービスが実行されていることを確認するスクリプトbash

私はカスタマイズされたLinuxバージョンを持っており、カーネルバージョンは次のとおりです。そして4.1.15-klk私のプラットフォームアーキテクチャは次のとおりです。armv7l GNU/Linux

私のプロセスが実行されていることを確認しようとしています。

私はこれを試しました:

#!/bin/sh
service=myservice

if [ $(ps | grep -v grep | grep $service | wc -l) -gt 0 ]
then
 echo "$service is running!!!"
else
 echo "$service is not running!!!"
fi

しかし、「私のサービスが実行中です!!!」というメッセージが表示されます。

私のシステムでは利用できないため、pgrepは利用できません。

どんなアイデアがありますか?ありがとうございます!

ベストアンサー1

に基づいてこの問題、短くスクリプト可能な方法は次のとおりです。

systemctl is-active --quiet service

サービスが実行中の場合、コード 0 で終了します。

sshdサービスが実行されているかどうかを印刷する例:

systemctl is-active --quiet sshd && echo "sshd is running" || echo "sshd is NOT running"

おすすめ記事