如何在终端中终止这个tomcat进程?

Tom*_*ell 48 java unix linux terminal tomcat

使用ps -ef | grep tomcat我发现了一个正在运行的tomcat服务器.我尝试了,kill -9 {id}但它返回"没有这样的过程." 我究竟做错了什么?

这是一个例子:

Admins-MacBook-Pro:test-parent tom.maxwell$ ps -ef | grep tomcat
2043706342 39707 39695   0  3:40PM ttys000    0:00.00 grep tomcat
Admins-MacBook-Pro:test-parent tom.maxwell$ kill -9 39707
-bash: kill: (39707) - No such process
Run Code Online (Sandbox Code Playgroud)

小智 124

没有必要知道Tomcat的pid(进程ID)来杀死它.您可以使用以下命令来终止Tomcat:

pkill -9 -f tomcat
Run Code Online (Sandbox Code Playgroud)

  • 你救了我的一天. (2认同)

sur*_*upa 23

ps -ef | grep tomcat | awk'{print $ 2}'| xargs kill -9

https://gist.github.com/nrshrivatsan/1d2ea4fcdcb9d1857076

第1部分

ps -ef | grep tomcat =>使用tomcat grep获取所有进程

第2部分

一旦我们获得了流程细节,我们就将其输入到脚本的第2部分

awk'{print $ 2}'| xargs kill -9 =>获取第二列[Process id]并使用-9选项终止它们

希望这可以帮助.


Aur*_*and 18

Tomcat没有运行.您的搜索向您显示grep进程,该进程正在搜索tomcat.当然,当您看到输出时,grep不再运行,因此pid不再有效.

  • 下次使用ps -ef | grep [t] omcat (2认同)

Ola*_*che 12

正如其他人已经指出的那样,你已经看到了grep进程.如果要将输出限制为tomcat本身,则有两种选择

  • 将第一个搜索到的字符包装在一个字符类中

    ps -ef | grep '[t]omcat'
    
    Run Code Online (Sandbox Code Playgroud)

    这也会搜索tomcat,但是会错过该grep [t]omcat条目,因为它不匹配[t]omcat.

  • 使用ps的自定义输出格式

    ps -e -o pid,comm | grep tomcat
    
    Run Code Online (Sandbox Code Playgroud)

    这仅显示没有进程参数的进程的pid和名称.因此,grep被列为grep而不是grep tomcat.


ASR*_*ASR 11

只需在终端输入以下命令即可

ps -ef |grep 'catalina'
Run Code Online (Sandbox Code Playgroud)

复制进程ID的值,然后键入以下命令并粘贴进程ID

 kill -9 processid
Run Code Online (Sandbox Code Playgroud)


小智 6

ps -Af | grep "tomcat" | grep -v grep | awk '{print$2}' | xargs kill -9
Run Code Online (Sandbox Code Playgroud)