我在linux服务器上通过kill命令,关了一个tomcat,但是把另外一个tomcat也一并关了,这两个tomcat端口号并不一样,请问这是为什么。
怎么可能呢?肯定是两个不同的进程。ps -ef | grep tomcat 看一下具体的pid 然后再 kill -9 pid
因为你们没有现在对应 可以使用命令过滤
# description: Auto-starts tomcat
Dir="/tomcat/"
echo $Dir
RETVAL="0"
# See how we were called.
function start() {
echo -n "Starting Tomcat: "
cd $Dir
./bin/startup.sh
echo
}
function stop2() {
stop
echo >$Dir/logs/catalina.out
}
function stop() {
pid=$(ps -ef | grep -v 'grep' | egrep $Dir"bin/bootstrap.jar"| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then
echo -n "tomcat ( pid $pid) is running"
echo
echo -n $"Shutting down Tomcat: "
cd $Dir
./bin/shutdown.sh
pid=$(ps -ef | grep -v 'grep' | egrep $Dir"bin/bootstrap.jar"| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then
echo "kill tomcat process"
kill -9 "$pid"
fi
else
echo "Tomcat is stopped"
fi
status
}
function status()
{
pid=$(ps -ef | grep -v 'grep' | egrep $Dir"bin/bootstrap.jar"| awk '{printf $2 " "}')
#echo "$pid"
if [ "$pid" != "" ]; then
echo "tomcat is running,pid is $pid"
else
echo "tomcat is stopped"
fi
}
function usage()
{
echo "Usage: $0 {start|stop|stop2(stop and clear catalina.out)|restart|restart2(clear catalina.out)|reload|status}"
RETVAL="2"
}
# See how we were called.
RETVAL="0"
case "$1" in
start)
start
;;
stop)
stop
;;
stop2)
stop2
;;
restart)
stop
start
;;
restart2)
stop2
start
;;
reload)
RETVAL="3"
;;
status)
status
;;
*)
usage
;;
esac
exit $RETVAL