0

プログラムの実行中のインスタンスをチェックすることになっているbashスクリプトがあり、実行されていない場合はコマンドを実行します(テスト目的でエコー)。問題は、コマンドをコマンド ラインに直接コピー/貼り付けしたときに機能するにもかかわらず、bash がコマンドを実行していないことです。私の問題は単純で、スクリプト言語に対する私の素朴さが原因だと思います。

問題の行:

ps -ef | grep -v grep | grep $SCRIPT > /dev/null || echo "`date` - $0 : $SCRIPT stopped. Restarting..."

コマンド ラインに貼り付けると問題なく動作しますが、スクリプトを実行しても何も起こりません。提案?

編集:問題を解決したと思います。スクリプトをチェックするために実行されるqueue_reader.shスクリプトは、私が愚かにcheck_queue_reader.sh「」という名前を付けたため、ps -efコマンド自体が実行を妨げてい||ました。

4

1 に答える 1

0

元の投稿の編集を参照してください。

私が実行していたスクリプトは「check_queue_reader.sh」と呼ばれ、grep を使用しps -efて「queue_reader.sh」を検索していました。これにより、スクリプトが自分自身を見つけたため、到達したときにチェックに失敗しました||

于 2012-04-16T20:51:30.167 に答える