UNIXで進行中のジョブのPIDを見つけるには?

UNIXで進行中のジョブのPIDを見つけるには?

いくつかの内部アプリケーションを呼び出すシェルスクリプトを実行しましたが、数時間かかります。いくつかの問題のために、これを中断または終了する必要がありました。そのために、最初にps -u $uname進行中のすべてのタスクを一覧表示するために走りました。

PID TTY         TIME CMD
 14172 pts/1       0:00 ps
 12939 ?           0:00 sshd
 12904 ?           0:01 sshd
 13132 pts/1       0:00 bash
 12945 pts/1       0:00 sh
 12897 ?           0:00 sshd

今殺す正しいPIDを見つける方法は?

答え1

以下を使用することも検討できます。

pgrep "you_script"

または

pgrep -f "complete_cmd_line_of_script"

「process-grep」は、PIDのみを結果として表します。

見つかったプロセスを終了するには、pgrepと同じ構文を使用するpkillを使用することもできます。

答え2

ps aux | grep "your_script_name.sh"

答え3

より完全な答えは、PIDにのみ興味があるからです。

ps aux | grep yourscript | grep -v grep | awk '{print $2}'

答え4

ps -aux

cronこれは素晴らしいコマンドですが、ほとんどの操作は完了していないか、「進行中」デーモンがある場合は再起動するように設定されていることに注意してください。

関連情報