我有几个进程弹出,并且我能够打印一行 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)}' -