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

发布于 2024-12-15 12:19:51 字数 156 浏览 0 评论 0原文

我想使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

孤君无依 2024-12-22 12:19:52

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

pgrep -f keyword

手册页

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


如果您确实想避免 pgrep,请尝试:

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

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

You can use pgrep as long as you include the -f options. That makes pgrep match keywords in the whole command (including arguments) instead of just the process name.

pgrep -f keyword

From the man page:

-f       The pattern is normally only matched against the process name. When -f is set, the full command line is used.


If you really want to avoid pgrep, try:

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

Note the [] around the first letter of the keyword. That's a useful trick to avoid matching the awk command itself.

谁许谁一生繁华 2024-12-22 12:19:52

尝试

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.

浅听莫相离 2024-12-22 12:19:52

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}'

乞讨 2024-12-22 12:19:52

这在 Linux 上可用:pidof 关键字

This is available on linux: pidof keyword

七秒鱼° 2024-12-22 12:19:52

我使用

ps -C "keyword" -o pid=

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

I use

ps -C "keyword" -o pid=

This command should give you a PID number.

只是我以为 2024-12-22 12:19:52

要通过特定关键字终止进程,您可以在 ~/.bashrc (linux) 或 ~/.bash_profile (mac) 中创建别名。

alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"

To kill a process by a specific keyword you could create an alias in ~/.bashrc (linux) or ~/.bash_profile (mac).

alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文