gpt4 book ai didi

linux - 如何在不意外包含不相关进程的情况下匹配并终止特定进程?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:00 25 4
gpt4 key购买 nike

我有两个 Tomcat 进程,一个叫做 event-ws,另一个叫做 app-event-ws。我有时需要从 shell 脚本中终止 event-ws:

ps -ef | grep -w event-ws | grep -v grep

以上将找到并杀死他们两个;我怎样才能准确找到其中之一?

最佳答案

pgrep/pkill 是在这种情况下使用的最佳工具,代替 ps:

 pgrep -x event-ws   # match by executable filename 'event-ws'; print PID
pkill -x event-ws # match and kill

每个命令匹配可执行文件名event-ws的进程完全(-x) (无论启动可执行文件时是否使用了目录路径前缀)。

但是请注意,您的 pgrep/pkill 实现可能会将名称限制为 15 个字符 - 无论是在匹配时还是在其输出中。

pgrep 只是打印匹配的 PID(进程 ID),而 pkill 杀死 匹配过程。


相比之下,如果您需要通过完整命令行的一部分进行匹配,请使用带有正则表达式的-f选项:

pgrep -f '/event-ws/' # match by part of the full command line; print PID and name
pkill -f '/event-ws/' # match and kill

如果将 -l 添加到 pgrep 命令,则会打印匹配进程的完整命令行,而不仅仅是进程名称。

关于linux - 如何在不意外包含不相关进程的情况下匹配并终止特定进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42917769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com