現場的同事遇到一個Tomcat僵死的問題,隔三差五的服務器就會掛掉,向我尋求解決方案,服務器正常,沒有發現問題。可能是應用程序本身的問題導致,先取一個臨時的辦法,先服務器跑起來,然後慢慢找原因:
1、 編寫一個重啓tomcat的shell腳本,腳本內容如下:restart.sh
vi restart.sh
注意“.”和 /etc/profile 之間有空格(. /etc/profile 注意, "."和"/etc/profile" 之間有空格.)
#!/bin/sh . /etc/profile pid=`ps aux | grep tomcat | grep -vgrep | grep -v retomcat | awk '{print $2}'` echo $pid if [ -n "$pid" ] then { echo -------shutdown--------- /opt/wstk/tomcat6/bin/shutdown.sh sleep 1 pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk'{print $2}'` if [ -n "$pid" ] then { sleep 1 echo -------kill tomcat-------- kill -9 $pid } fi sleep 1 echo --------startup.sh---------- /opt/wstk/tomcat6/bin/startup.sh } else echo --------startup.sh--------- /opt/wstk/tomcat6/bin/startup.sh fi |
2、 給腳本賦予權限
#chmod u+x restart.sh或者chmod 777 restart.sh
3、 編寫定時任務腳本
#crontab -e
添加如下腳本內容:
30 04 * * * /home/retwo/restart.sh >>/home/retwo/logs/restart.log 2>&1
4、重啓定時任務腳本
(1)查看定時任務狀態
service crond status
(2)停止定時任務
service crond stop
(3)啓動定時任務
service crond start
(4)或者使用service crond restart命令
這只是臨時的解決辦法,要從根本解決問,還要認真分析出現問題的原因。找出問題根源,開着水龍頭拖地,永遠是拖不乾淨的。