プロセスが実行されているコマンドが何であるかをどうやって知ることができますか?

プロセスが実行されているコマンドが何であるかをどうやって知ることができますか?

異なる時間にバックグラウンドプロセスとして実行されるいくつかのコマンドがあります。

wget -r url1 &
wget -r url2 &
..............
..............

結果は、-- ps -eという2つのプロセスがあることを示しています。wget

     2552 ?        00:00:01 wget
     2576 ?        00:00:00 wget
     ......        .............
     ......        .............

これで実行プロセスを終了したいと思いますurl2。どのプロセスが実行されているのか、どうすればわかりますかurl

答え1

-eコマンドにはオプションの代わりにオプションを使用してください。ps-f

user1    14298 13518  0 00:11 pts/1    00:00:00 sleep 100
user1    14299 13518  0 00:11 pts/1    00:00:00 sleep 50

これにより、コマンドに渡されたパラメーターも表示できます。あなたの場合は別のURLです。

答え2

対話型シェル設定でこれを行う場合は、kill the second background jobを使用できますkill %2

これがシェルスクリプトで実行されると、PIDを記録してシグナルを送信できます。

#!/bin/bash
wget http://example.com/bigfile1 &
pid1=$!
wget http://example.com/biggerfile2 &
pid2=$!
# Time passes..
# Impatience intensifies...
kill $pid2

現在のセッションの完全なコマンドライン(および環境)を表示するには、を使用できますps ex

関連情報