手工,这是过程:
ps -ef | grep tomcat
结果如下:
0 39107 1 0 5:40PM ttys004 5:22.34 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java -Djava.util.logging.config.file=/opt/local/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms384m -Xmx768m -XX:NewSize=256m -XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=384m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.endorsed.dirs=/opt/local/tomcat7/endorsed -classpath /opt/local/tomcat7/bin/bootstrap.jar:/opt/local/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/opt/local/tomcat7 -Dcatalina.home=/opt/local/tomcat7 -Djava.io.tmpdir=/opt/local/tomcat7/temp org.apache.catalina.startup.Bootstrap start
第二个数字是pid。
然后我做
sudo kill tomcat_pid
如何自动执行此操作?
PS。我知道有一个shutdown.sh脚本。我已经尝试过,但它永远不会奏效。
答案 0 :(得分:7)
ps -ef | grep tomcat | awk '{ print $2 }' | xargs kill
将提取第二个数字并将其传递给kill
。实际上,您可能希望ps -efww
确保获得整个命令行。
这真的不是最好的方法;理想情况下,您应该在创建稍后要杀死的进程时存储PID,以确保不会因意外发生与您正在搜索的字符串匹配的事情(以及其他潜在问题)而终止。
答案 1 :(得分:0)
这是我的Ubuntu Linux脚本使用bash 它不是自动的,但发现和杀死tomcat来到 如果您想要终止进程并手动输入进程号,请按Enter键。
#/bin/bash
if [ `whoami` != root ]; then
echo "Please run this script as root or using sudo"
exit
fi
echo
echo "finding proceses that have name java and established connections status"
echo
echo "Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name"
netstat --tcp --numeric --programs | grep "ESTABLISHED" | grep "java"
echo
echo "finding proceses that use port 8080"
echo
netstat --tcp --numeric --programs | grep ":8080"
echo -n "Do you wish to kill a process listed above?[Y/n]"
read choose
if [ "$choose" = "Y" ] || [ "$choose" = "y" ] || [ -z "$choose" ]
then
echo "enter pid to kill"
read procesId
kill -9 $procesId
fi
echo "done exiting"
exit 0
答案 2 :(得分:0)
这是使用bash脚本杀死所有正在运行的tomcat进程的脚本
#!/bin/sh
ARG=$1
for file in `find /proc -regex /proc/[0-9]+ 2> /dev/null`; do
if `grep --silent org.apache.catalina.startup.Bootstrap $file/cmdline 2> /dev/null`; then
base=`basename $file`
echo "Trying to " kill $ARG $base "tomcat process"
kill $ARG $base
fi
done
答案 3 :(得分:0)
尝试:
pkill -f catalina; sleep 3
pkill:根据姓名等查找或发出信号流程 睡眠3 :等待3秒,在尝试立即启动tomcat时非常有用。