Linuxの基本スクリプトのfisrスクリプトに基づいて2番目のスクリプトを制御する方法

Linuxの基本スクリプトのfisrスクリプトに基づいて2番目のスクリプトを制御する方法

スクリプトに慣れていません。サーバーでサービスを監視したいです。 2つのスクリプトがあります。 1 - サービスが実行されているかどうかを確認する(checking.sh)2 -サービスを開始する(start.sh)

2つのスクリプトを1つにまとめて(monitor.sh)、それを予約/クローンしたいと思います。最初のスクリプトの結果に基づいて2番目のスクリプトを実行する方法最初のスクリプトの結果が0の場合はサービスを開始する必要があります(最初のスクリプトの結果が1の場合は2番目のスクリプトを実行する必要があります)。 、2番目のスクリプトを実行してプライマリサーバーをシャットダウンする必要はありません。

ベストアンサー1

これは何ですか?終了コードはい。したがって、モニター・スクリプトには次のことができます。

#!/bin/bash
# monitor.sh  -- checks if a Thing is doing its Thing
if [[ -r /var/run/myjob.pid ]]; then
    if kill -0 $( cat /var/run/myjob.pid ); then
        exit 0   # The process is alive, job is presumably running
    else
        exit 1   # Well, we had a PID file, but it was orphaned.
    fi
else
    exit 2 # no PID file, job presumably not running
fi

処理したい状態ごとに異なる終了コードを使用します。その後、サービス検査官の場合:

#!/bin/bash
# check.sh -- Checks to see if Thing is Thinging and, if not, start it
if ! /path/to/monitor.sh; then
    /path/to/start.sh
fi

次に、ジョブスクリプトを実行します。

#!/bin/bash
# start.sh - do a Thing
if [[ -r /var/run/myjob.pid ]]; then
    echo "A Thing is already being done!" 1>&2
    exit 1 
else
    echo $$ > /var/run/myjob.pid
    trap 'rm /var/run/myjob.pid' EXIT
    do_Thing_related_things
fi

おすすめ記事