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

时间:2013-03-05 23:43:36

标签: java linux unix tomcat terminal

使用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

14 个答案:

答案 0 :(得分:116)

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

pkill -9 -f tomcat

答案 1 :(得分:22)

  

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 =>获取第二列[进程ID]并使用-9选项

终止它们

希望这有帮助。

答案 2 :(得分:18)

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

答案 3 :(得分:12)

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

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

    ps -ef | grep '[t]omcat'
    

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

  • 使用ps

    的自定义输出格式
    ps -e -o pid,comm | grep tomcat
    

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

答案 4 :(得分:11)

只需在终端

中输入以下命令即可
ps -ef |grep 'catalina'

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

 kill -9 processid

答案 5 :(得分:2)

ps -ef

将列出您当前正在运行的所有流程

| grep tomcat

会将输出传递给grep并查找tomcat的实例。由于grep本身就是一个进程,因此它会从您的命令返回。但是,您的输出显示没有运行Tomcat的进程。

答案 6 :(得分:2)

ps -Af | grep "tomcat" | grep -v grep | awk '{print$2}' | xargs kill -9

答案 7 :(得分:2)

tomcat/bin/catalina.sh

在评论部分结束后添加以下行:

CATALINA_PID=someFile.txt

然后,要杀死正在运行的Tomcat实例,您可以使用:

kill -9 `cat someFile.txt`

答案 8 :(得分:1)

这对我有用:

第1步:回显ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'

以上命令返回“process_id”

第2步:kill -9 process_id
//此process_id与步骤1相同:输出

答案 9 :(得分:0)

我不得不在服务器上的许多java进程中终止activeMQ java进程,而这个进程由特定用户启动(用户名为activemq)。 如此好的分离方法可能是由特定用户启动流程:

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

答案 10 :(得分:0)

正如@Aurand所说,tomcat没有运行。

可以使用

ps -ef |grep java | grep tomcat命令忽略ps个程序。

在shell脚本文件中为我工作。

答案 11 :(得分:0)

kill -9 $(ps -ef | grep 8084 | awk 'NR==2{print $2}')

NR表示输入文件中的记录数。 awk可以找到或替换文字

答案 12 :(得分:0)

要按名称终止进程,请使用以下

ps aux | grep "search-term" | grep -v grep | tr -s " " | cut -d " " -f 2 | xargs kill -9

tr -s " " | cut -d " " -f 2awk '{print $2}'相同。 tr将制表空间置于单个空格中,cut提供<SPACE>作为分隔符,并请求第二列。 ps aux输出中的第二列是进程ID。

答案 13 :(得分:0)

这很好用(找到tomcat进程并强行杀死它们)

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