kill、awk、ps、およびgrepを使用して1行でプロセスを終了する

kill、awk、ps、およびgrepを使用して1行でプロセスを終了する

複数のプロセスが表示され、killコマンドに入力したいpgid行を印刷できます。

これが私が持っているものです: sudo ps o pgid,args | grep mininet: | sudo awk '{print -$0}'

次のようなものを返します

-3834
-3841
-3844
-3846
-3848
-3853
-3856
-3859
-3862

私はその部分の出力を無効に{print -$0}してサブプロセスも終了しました。

grepコマンドは、bashコマンドで親プログラムを表すパラメータを取得します。

今電話したいのですが、sudo kill -SIGSTOPここに見えます。http://www.chemie.fu-berlin.de/chemnet/use/info/gawk/gawk_9.html条件文、印刷など以外のコマンドは awk では使用できません。私が間違いをしているのですか?または、プロセスを停止するために入力をkillコマンドにリダイレクトする方法はありますか?

コンテキスト:mininetネットワークシミュレータを一時停止しています。ラインにすればカッコいいようでしたかったです。優先順位を付ける方法|と、あるコマンドを別のコマンドに適用する方法については少し混乱しています。

Unixの哲学に従ってコーディングすれば、ボトルネックを心配する必要はありませんが、これが悪いアプローチだと思う人がいる場合は、情報をありがとうございます。

ありがとうございます〜

編集する:

このコマンドはプロセスを停止します。

sudo ps o pgid,args | grep mininet: | sudo awk  '{system("sudo kill --signal SIGSTOP -"$1)}' - 

あなたはawk使用することができますsystem("program ")

次の効果的なアドバイスに従ってください。

sudo pgrep -f mininet: | sudo awk  '{system("sudo kill --signal SIGCONT -"$1)}' - 

ベストアンサー1

このコマンドはプロセスを停止します。

sudo ps o pgid,args | grep mininet: | sudo awk  '{system("sudo kill --signal SIGSTOP -"$1)}' - 

あなたはawk使用することができますsystem("program ")

pgrepの使用に関するアドバイスに従って、次のように動作します。

sudo pgrep -f mininet: | sudo awk  '{system("sudo kill --signal SIGCONT -"$1)}' - 

おすすめ記事