0

私はBOA Webサーバーを使用するプロジェクトに参加しています.ある時点でサーバーがクラッシュします.プロセスをキャッチしたのではなく、リセットするための適切なウォッチドッグを作りたかったのですが、どこから始めればよいかわかりません..誰かが私を助けることができますか?

4

1 に答える 1

0

以下のコードを使用して問題を解決できました。

#!/bin/sh
#chkconfig: 2345 90 10
#description: watchdog for myservice
#processname: myservice-watchdog

MYSERVICE_PID=`pidof /etc/init.d/apache2`

check_myservice() {
        if [ -z $MYSERVICE_PID ];then
                service apache2 start
        fi
}

check_myservice

usage() {
    echo "myservice-watchdog {start|stop|status}"
    exit 0
}

case $1 in
    start ) if [-z $MYSERVICE_PID ];then
        service apache2 start
        else
            echo "myservice is already running"
        fi
        ;;
    stop ) if [ -n $MYSERVICE_PID ];then
        service apache2 stop
        else
            echo "myservice is already stopped"
        fi
        ;;
    status) if [ -z $MYSERVICE_PID ];then
            echo "myservice is not running"
        else
            echo "myservice is running"
        fi
        ;;
    *) usage
        ;;
esac

しかし、別の問題が見つかりました。このスクリプトは完全に実行されました..しかし、プロセスの PID を識別するために使用することはできません。ほとんどの場合、プロセス名を使用する必要があります。

プロセス名を取得する方法を知っている人はいますか? むしろ特定?

于 2013-09-25T18:08:20.450 に答える