tomcat啟動產生多個java程序
問題連結 https://www.oschina.net/question/2402835_2308799
找到的解決方式
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 0 4789 1 0 85 0 - 75083 schedu pts/1 00:00:03 java 040 S 0 4790 4789 0 75 0 - 75083 schedu pts/1 00:00:00 java 040 S 0 4791 4790 0 75 0 - 75083 schedu pts/1 00:00:03 java 040 S 0 4792 4790 0 75 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4793 4790 0 75 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4794 4790 0 78 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4795 4790 0 75 0 - 75083 rt_sig pts/1 00:00:02 java 040 S 0 4796 4790 0 78 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4797 4790 0 75 0 - 75083 schedu pts/1 00:00:00 java 040 S 0 4802 4790 0 75 0 - 75083 schedu pts/1 00:00:00 java 040 S 0 4803 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4804 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4805 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4806 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4807 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4808 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4809 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 040 S 0 4810 4790 0 80 0 - 75083 rt_sig pts/1 00:00:00 java 大概有40多個,感覺好恐怖,在網上查了半天也沒有什麼結果,只是發現了主程序子程序的關係。 和做C的同事討論後,他說發現mysql也有類似情況: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6238 mysql 25 0 49272 12m 2020 S 0.0 5.0 0:00.30 mysqld 6239 mysql 18 0 49272 12m 2020 S 0.0 5.0 0:00.00 mysqld 6240 mysql 25 0 49272 12m 2020 S 0.0 5.0 0:00.00 mysqld 6241 mysql 24 0 49272 12m 2020 S 0.0 5.0 0:00.00 mysqld 6242 mysql 24 0 49272 12m 2020 S 0.0 5.0 0:00.00 mysqld 6243 mysql 25 0 49272 12m 2020 S 0.0 5.0 0:00.00 mysqld 6245 mysql 18 0 49272 12m 2020 S 0.0 5.0 0:00.01 mysqld 後來查mysql多程序的時候有高手回答如下: 原來如此啊,linux的執行緒是通過程序實現的。 2.6核心32位系統上 gcc -static編譯出來的程式 會讓多執行緒表現成多程序的狀態,出現同名多個PID 不帶-static就表現為只有一個PID 64位系統,不管加不加-static,都只有一個PID 感覺32位和64位線上程的實現不一樣
---------------------
作者:winderain
來源:CSDN
原文:https://blog.csdn.net/winderain/article/details/2592619
版權宣告:本文為博主原創文章,轉載請附上博文連結!
1、在tomcat/bin/shutdown.sh檔案中增加一個引數
在檔案最後一行的命令新增一個force exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
2、在tomcat/bin/catalina.sh腳中,加入下面這三行
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
---------------------
作者:腳踏一方土
來源:CSDN
原文:https://blog.csdn.net/Diaochengrui1989/article/details/81669372
版權宣告:本文為博主原創文章,轉載請