找到的解决方式
1、在tomcat/bin/shutdown.sh文件中增加一个参数
在文件最后一行的命令添加一个force exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
2、在tomcat/bin/catalina.sh脚中,加入下面这三行
在这一行后面 PRGDIR=`dirname "$PRG"`
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
cat $CATALINA_PID
fi
3、在tomcat/bin/下面新建setenv.sh文件,文件内容如下:
#!/bin/bash
CATALINA_PID=$CATALINA_HOME/bin/CATALINA_PID
-----------------------------------------------------------------------------------------------------
猜测原因如下:
linux的线程是通过进程实现的。 2.6内核32位系统上 gcc -static编译出来的程序 会让多线程表现成多进程的状态,出现同名多个PID 不带-static就表现为只有一个PID 64位系统,不管加不加-static,都只有一个PID 感觉32位和64位在线程的实现不一样。
欢迎各路大神解惑
以下为解决问题中发现的有价值的帖子。
偶尔发现linux下tomcat启动后出现多个java进程,如下: 000 S