Den*_*Ich 103 linux shell daemon
我想用来ps -ef | grep "keyword"
确定一个守护进程的pid(ps -ef的输出中有一个唯一的字符串).
我可以用pkill keyword
任何命令返回pid而不是杀死它来杀死进程吗?(pidof或pgrep不起作用)
Sha*_*hin 217
只要包含选项,您就可以使用.这使得整个命令(包括参数)中的匹配关键字而不仅仅是进程名称.pgrep
-f
pgrep
pgrep -f keyword
Run Code Online (Sandbox Code Playgroud)
从手册页:
-f
该模式通常仅与进程名称匹配.时-f
被设定,则使用完整的命令行.
如果你真的想避免使用pgrep,请尝试:
ps -ef | awk '/[k]eyword/{print $2}'
Run Code Online (Sandbox Code Playgroud)
请注意[]
关键字的第一个字母.这是避免匹配awk
命令本身的有用技巧.
Lew*_*ton 48
尝试
ps -ef | grep "KEYWORD" | awk '{print $2}'
该命令应该为您提供其中包含KEYWORD的进程的PID.在这种情况下,awk
返回输出中第二列中的内容.
小智 20
ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'
要通过特定关键字终止进程,您可以在~/.bashrc
(linux) 或~/.bash_profile
(mac) 中创建别名。
alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"
Run Code Online (Sandbox Code Playgroud)