从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关键字