実行している次のコマンドを含むphpスクリプトがあります。
exec("pgrep -fl ./build-dh", $output, $return);
実行中の「./build-dh」プロセスが見つからない場合、pgrep は通常「1」を返しますが、プロセスが実行されていないと確信している場合でも、常に「0」を返します。
$output から得られるものは次のとおりです。
Array ( [0] => 28560 sh -c pgrep -fl ./build-dh )
これは、独自のpidを出力していることを意味します。これは、何があっても「0」のリターンコードを強制すると思います。シェルで次を実行すると、正常に動作します。
$pgrep -fl ./build-dh
$echo $?
1
したがって、戻り値は正常に機能します...そして、これを実行すると:
$pgrep -f nginx
11192
11193
11194
11195
11196
$echo $?
0
PHPでこれを正しく機能させるにはどうすればよいですか?
ありがとう