我想查找一个特定的进程,然后将其杀死(在脚本中)。
我正在做ps -fu user | grep matching_string
,但这会给我两行:一行是预期的pid,另一行是grep的pid。
如果结果是两列,我会用awk来挑选第一列。但是当我们将它们作为行返回时,我不知道如何选择第一个结果。
答案 0 :(得分:2)
pkill
怎么样?
pkill -U user-id process-name
答案 1 :(得分:1)
你可以使用这个技巧:
ps -fu user | grep matching_strin[g]
这样,grep
匹配就不会出现了。
它是如何工作的? (有关详细信息,请参阅Find and kill a process in one line using bash and regex。)
ps -fu user | grep matching_string
,它列出了grep matching_string
的所有流程,因此包含grep
本身。ps -fu user | grep matching_strin[g]
添加正则表达式,使grep
跳过grep
本身。为什么?因为流程名称为grep matching_strin[g]
且与文字matching_string
不匹配。