コンピュータグリッドで物理分析タスクを実行します。時には仕事が間違っていて、一つずつ取り除かなければなりませんが、これは痛いです。この出力で数値(748736838など)のみを選択する方法を提案してもよろしいですか?
$ps -W
mhaque -748736838 0 W
mhaque -748736879 0 W
mhaque -748737079 0 W
mhaque -748737185 0 W
mhaque -748737276 0 W
(そしてこのような数百行)
sed
stackExchangeで複数の//コマンドをawk
試しましたが、grep
数値を区切ることはできません。数値を選択してその前に「kill」を付ける命令がありますか?たとえば、次のようになります(パイプライン)。
ps -W | awk/sed/grep (what_to_use) | (some_command to place "kill") | > file.list
これにより、次のようになります(file.listから)。
kill 748736838
kill 748736879
...so on..
その後、それをグリッドシェルにコピーして貼り付けると、問題が発生したか長時間待機しているジョブを終了できます。
答え1
誰かを殺したいならみんな~のハッキング作業が簡単になりました。
pkill -9 mhaque
(-9送信する信号です。この場合は選択してください。信号を殺す、あなたのニーズに応じて変更してください)。
返品、
pidof mhaque
ジョブPIDの単純なリストのみを返し、それ以外は何も返しません。次のように使用することもできます。
kill -9 $(pidof mhaque)
最初のコマンドと同じ効果を生成します。これはすべてスクリプトを書くよりはるかに簡単です。例えば、
$ vlc fulvio.mkv &> /dev/null &
[1] 28006
$ vlc fulvio.mkv &> /dev/null &
[2] 28028
$ pidof vlc
28028 28006
$ pkill -9 vlc
$ ps ax | grep vlc
28054 pts/18 S+ 0:00 grep --color=auto vlc
[1]- Killed vlc fulvio.mkv &> /dev/null
[2]+ Killed vlc fulvio.mkv &> /dev/null
編集する:
コメントに含まれる説明によると、注文は
ps -W | awk '{print $2}' | cut -d"-" -f2
ジョブPIDの簡単なリストを生成します。ファイルに書き込むか直接処理できます。
kill -9 $(ps -W | awk '{print $2}' | cut -d"-" -f2)
編集2
上記のコマンドは単に標準のBashなので、これが期待どおりに機能しないことに少し驚きました。どのシステムを使用していますか?とにかく試してみてください。
for i in $(ps -W | awk '{print $2}' | cut -d"-" -f2); do kill -9 $i; done