从 ps -ef |grep 关键字获取 pid
我想使用 ps -ef | grep "keyword" 来确定守护进程的 pid(其中 ps -ef 的输出中有一个唯一的字符串)。
我可以使用pkill关键字
杀死进程,是否有任何命令可以返回pid而不是杀死它? (pidof 或 pgrep 不起作用)
I want to use ps -ef | grep "keyword"
to determine the pid of a daemon process (there is a unique string in output of ps -ef in it).
I can kill the process with pkill keyword
is there any command that returns the pid instead of killing it? (pidof or pgrep doesnt work)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
只要包含
-f
选项,就可以使用pgrep
。这使得 pgrep 匹配整个命令(包括参数)中的关键字,而不仅仅是进程名称。从 手册页:
如果您确实想避免 pgrep,请尝试:
注意关键字第一个字母周围的
[]
。这是避免匹配 awk 命令本身的有用技巧。You can use
pgrep
as long as you include the-f
options. That makespgrep
match keywords in the whole command (including arguments) instead of just the process name.From the man page:
If you really want to avoid pgrep, try:
Note the
[]
around the first letter of the keyword. That's a useful trick to avoid matching theawk
command itself.尝试
ps -ef | grep "关键字" | awk '{print $2}'
该命令应该为您提供其中包含 KEYWORD 的进程的 PID。在本例中,
awk
返回输出中第二列的内容。Try
ps -ef | grep "KEYWORD" | awk '{print $2}'
That command should give you the PID of the processes with KEYWORD in them. In this instance,
awk
is returning what is in the 2nd column from the output.ps -ef | ps -ef | ps -ef | ps -ef | ps -ef | ps -ef | grep 关键字 | grep -v grep | grep -v awk '{print $2}'
ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'
这在 Linux 上可用:pidof 关键字
This is available on linux: pidof keyword
我使用
这个命令应该给你一个PID号。
I use
This command should give you a PID number.
要通过特定关键字终止进程,您可以在
~/.bashrc
(linux) 或~/.bash_profile
(mac) 中创建别名。To kill a process by a specific keyword you could create an alias in
~/.bashrc
(linux) or~/.bash_profile
(mac).