使用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
答案 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)
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 2
与awk '{print $2}'
相同。 tr
将制表空间置于单个空格中,cut
提供<SPACE>
作为分隔符,并请求第二列。 ps aux
输出中的第二列是进程ID。
答案 13 :(得分:0)
这很好用(找到tomcat进程并强行杀死它们)
ps -ef | grep tomcat | awk '{print $2}' | xargs kill -9