从ps -ef | grep关键字获取pid

我想用ps -ef | grep "keyword" ps -ef | grep "keyword"来确定一个守护进程的pid(在ps -ef的输出中有一个唯一的string)。

我可以用pkill keyword杀死进程有没有任何命令返回的PID而不是杀死它? (pidof或pgrep不工作)

只要包含-f选项, 就可以使用pgrep 。 这使得整个命令(包括参数)中的pgrep匹配关键字,而不仅仅是进程名称。

 pgrep -f keyword 

从手册页 :

-f模式通常只与进程名称匹配。 当-f被设置时,使用完整的命令行。


如果你真的想避免pgrep,请尝试:

 ps -ef | awk '/[k]eyword/{print $2}' 

请注意关键字的第一个字母周围的[] 。 这是避免与awk命令本身匹配的有用技巧。

尝试

ps -ef | grep "KEYWORD" | awk '{print $2}'

这个命令应该给你带有KEYWORD的进程的PID。 在这个例子中, awk从输出中返回第二列的内容。

ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'

我用

 ps -C "keyword" -o pid= 

这个命令应该给你一个PID号码。

这在Linux上是可用的:pidof关键字