Bashスクリプト - Linuxシステムの特定のプロセスを監視する必要があります。

Bashスクリプト - Linuxシステムの特定のプロセスを監視する必要があります。

私はデーモンに変換され、バックグラウンドで実行される単純なスクリプトを書いています。スクリプトは非常に簡単に動作します。lsコマンドプロセスなどのプロセスタイプを監視する必要があります。保存のためにファイルに書き込みます。

私の方法は、while trueループを使用し、psコマンドを使用してプロセスタイプを継続的にチェックすることです。これを検出すると、ファイルに追加します。

こんな文章を書くのが悪い方法なのかと思います。

私のコードは次のとおりです

while true
do 
   if [[ $(ps -aux | grep -w "ls") ]]
   then 
       #append to file
   fi 
done &

答え1

あなたはできます

grep commandname /proc/*/comm

私のLinuxシステムでは、ps | grepまたはpgrep

答え2

あなたは提案、

私の方法は、while trueループを使用し、psコマンドを使用してプロセスタイプを継続的にチェックすることです。これを検出すると、ファイルに追加します。

これを行うには、プロセス名を検索して一致するものを追加します。 (一致する項目がないと出力されません。)

while sleep 5
do
    ps -ef | grep -w '[l]s' >> matched.txt
done

実際に達成しようとしているものが何であるかを知らずに、アプローチを批判することは困難です。プロセスが終了したときにプロセスを再開するには、デバイスの使用を検討してくださいsystemd。特定のプロセスの存在を記録するには、lastcomm別の監査ツールを使用して、指定されたプロセスの開始時刻と終了時刻を取得することをお勧めします。どちらの場合も、使用中のループを廃止し、短期プロセスの実行を失うことはありません。

関連情報