java-如何在终端中杀死该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

14个解决方案

122 votes
无需知道Tomcat的pid(进程ID)即可将其杀死。 您可以使用以下命令来杀死Tomcat:
pkill -9 -f tomcat
Darshan answered 2020-02-13T21:04:37Z
23 votes
ps -ef | grep tomcat | awk'{print $ 2}'| xargs杀死-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选项将其杀死
希望这可以帮助。
suryakrupa answered 2020-02-13T21:05:28Z
18 votes
Tomcat未运行。 您的搜索向您显示了grep进程,该进程正在搜索tomcat。 当然,到看到该输出时,grep不再运行,因此pid不再有效。
Aurand answered 2020-02-13T21:05:48Z
12 votes
正如其他人已经指出的那样,您已经看到了grep流程。 如果要将输出限制为tomcat本身,则有两种选择
将搜索到的第一个字符包装在字符类中
grep
这也会搜索tomcat,但是会错过grep条目,因为grep tomcat与它不匹配。
与ps一起使用自定义输出格式
grep
这仅显示pid和进程名称,而没有进程参数。 因此,grep列为grep,而不是grep tomcat。
Olaf Dietsche answered 2020-02-13T21:06:35Z
11 votes
只需在终端中键入以下命令
ps -ef |grep 'catalina'
复制进程ID的值,然后键入以下命令并粘贴进程ID
kill -9 processid
ASR answered 2020-02-13T21:06:59Z
2 votes
ps -ef
将列出您当前正在运行的所有进程
| grep tomcat
会将输出传递给grep并查找tomcat的实例。 由于grep本身是一个进程,因此将从您的命令中返回它。 但是,您的输出显示没有Tomcat运行的进程。
Chris Knight answered 2020-02-13T21:07:24Z
2 votes
ps -Af | grep "tomcat" | grep -v grep | awk '{print$2}' | xargs kill -9
Vaibhav answered 2020-02-13T21:07:39Z
2 votes
在tomcat/bin/catalina.sh
在注释部分结束后添加以下行:
CATALINA_PID=someFile.txt
然后,要杀死正在运行的Tomcat实例,可以使用:
kill -9 `cat someFile.txt`
Shrikar Kulkarni answered 2020-02-13T21:08:08Z

1 votes

这为我工作:

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

上面的命令返回“ process_id”

步骤2:杀死-9 processid
//此process_id与步骤1相同:
jaydip jadhav answered 2020-02-13T21:08:45Z
0 votes
我不得不终止服务器上许多Java进程中的activeMQ Java进程,而这一进程是由特定用户启动的(用户名是activemq)。因此,分隔的好方法可能是由特定用户启动进程:
ps -ef | grep "activemq" | awk '{print $2}' | xargs kill -9
dobrivoje answered 2020-02-13T21:09:06Z
0 votes

正如@Aurand所说,tomcat没有运行。 您可以使用

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

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

ccjeaty answered 2020-02-13T21:09:34Z
0 votes
kill -9 $(ps -ef | grep 8084 | awk 'NR==2{print $2}')
NR是输入文件中的记录数。awk可以查找或替换文本
user8357232 answered 2020-02-13T21:09:54Z
0 votes

要按名称杀死进程,请使用以下命令

tr -s " " | cut -d " " -f 2
tr -s " " | cut -d " " -f 2与awk '{print $2}'相同。tr将制表符空间限制为单个空间,并为cut提供了作为分隔符,并请求第二列。 ps aux输出中的第二列是进程ID。
Prathik Rajendran M answered 2020-02-13T21:10:24Z
0 votes

这非常有效(查找tomcat进程并强行杀死它们)

ps -ef | grep tomcat | awk '{print $2}' | xargs kill -9
Pravin answered 2020-02-13T21:10:43Z