linux 如何通过管道给予参数来杀死[重复]

fzsnzjdm  于 2023-11-17  发布在  Linux
关注(0)|答案(9)|浏览(114)

此问题在此处已有答案

How to pass command output as multiple arguments to another command(5个答案)
两年前关闭。
我需要搜索某个进程并杀死该进程。我写了这样一个命令:

ps -e | grep dmn | awk '{print $1}' | kill

字符串
其中进程名为dmn。但它不工作。我如何通过名称和kill找到进程。

pxyaymoc

pxyaymoc1#

kill $(ps -e | awk '/dmn/ {print $1}')

字符串

qyyhg6bp

qyyhg6bp2#

如果您想要删除多个进程,可以使用以下命令:

ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill

字符串
注意:您需要从输出中删除grep process本身,这就是使用grep -v grep的原因。

wlsrxk51

wlsrxk513#

你可以用

pkill dmn

字符串
如果您的系统有pkill command

6ioyuze2

6ioyuze24#

只是添加了其他功能,但我喜欢使用awk的regex功能capacity:

kill $(ps | awk '/dmn/{print $1}')

字符串

hgqdbh6s

hgqdbh6s5#

如果您的系统上有pidof命令(我知道Shell(如MySQL)默认带有此命令,除非我弄错了),您可以执行以下操作:

kill -9 $(pidof dmn)

字符串

wwwo4jvm

wwwo4jvm6#

你可能不需要pipe,如果你有pidof命令并知道图像名称,我是这样做的:

kill $(pidof synergyc)

字符串
$()我理解这一点,因为它将输出转换为kill可以使用的变量,本质上就像管道一样。比其他一些选项更短,更容易理解,但也可能不那么灵活,更直接。

um6iljoc

um6iljoc7#

for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done

字符串
朋友们,我们可以使用for循环来完成。
“Some search”在这里是您要搜索的任何进程名称,例如“java”,假设java进程的计数是200+,那么逐个删除将是非常典型的。
因此您可以使用上面命令。
谢谢.

ippsafx7

ippsafx78#

也可以使用killall

killall dmn

字符串

t8e9dugd

t8e9dugd9#

pgrep与-f选项一起使用。kill $(pgrep -f dmn)

相关问题