0

別のphp cliスクリプトが実行されているかどうかをphp cliスクリプトが検出できる信頼できる方法はありますか? この場合に実行するということはps aux | grep scriptname.php、コマンド ラインで実行すると、それ自体の行が返されることを意味します。

exec('ps aux | grep scriptname.php',$output);ただし、このコマンドも出力に自分自身を返す傾向があるため、単純に実行すると誤検知が返されるのではないかと心配しています。

私が検出したスクリプトはログ エントリも作成しますが、状況によっては最大 5 分間スリープするため、この例ではログ エントリを検出するのは大まかな検出方法のようです。

4

2 に答える 2

1

grep -v grep「出力で自分自身を返す」部分を除外するために使用できます。つまり、コマンドに含まれてscriptname.phpいない場所のみを検索します。grep

exec('ps aux | grep scriptname.php | grep -v grep', $output);
于 2013-04-30T08:44:26.333 に答える