'ps aux | grep x' を手動で入力した場合とスクリプト経由で実行した場合の結果が異なる

'ps aux | grep x' を手動で入力した場合とスクリプト経由で実行した場合の結果が異なる

おそらくこれは悪い方法だったのでしょうが、スクリプトの if ステートメントの一部として実行していましたps aux | grep x | wc -l。これを通常のユーザーとしてコマンド ラインから実行すると、プロセスが実行されていない場合は、grep プロセスが起動するという厄介な癖のために、結果は 1 になります。

それはそれで結構ですが、結果をログに記録したところ、/etc/init.d スクリプトとして実行するとほとんどの場合ps aux | grep x | wc -l0 行が返されます。なぜでしょうか?

関連情報