mongodサーバーが実行されていることを確認し、そうでない場合は起動するためのシェルスクリプトを作成しています。これを達成するには、次のコマンドを使用します。
systemctl is-active --quiet mongod
これにより、期待どおりに操作が実行されます。しかし、私のスクリプトはおそらくsystemdなしでシステム上で実行されるでしょう。
ベストアンサー1
これは完璧ではありませんが、多くのシステムで動作します。名前が若干異なる場合があるか、渡す名前が別の名前のサブストリングである可能性があるため、このpgrep
アプローチは最適ではありませんが開始にすぎません。
#!/usr/bin/sh
if systemctl is-active --quiet "$1" > /dev/null 2>&1; then
echo "Running! (systemctl)"
elif service "$1" status 2>&1 | grep -Eq 'is running|: active (running)'; then
echo "Running! (service)"
elif pgrep "$1" > /dev/null 2>&1 ; then
echo "Running (pgrep)"
else
echo "Not running"
fi
別の名前で保存しcheckIfRunning
て、次のように実行してください。
checkIfRunning mongod