由於修改tomcat的配置文件或手動操作數據庫數據后,tomcat的緩存和redis的緩存很嚴重,需要經常重啟tomcat來釋放緩存,經常就是手動重啟。
# 1、查找tomcat的進程ID ps -ef | grep tomcat # 2、根據路徑去查找進程ID,然后逐個殺掉(畢竟一台服務器上面是會有多個不同業務的tomcat在運行。) kill -9 [ID]
剛接觸這些命令的時候,會經常的手動去敲命令然后練習加深,久而久之,感覺是在浪費時間(有時候會頻繁修改數據庫內容)。
所以就想着,能不能來編條shell腳本去替我做這些意義不大的工作。
新建文件:
touch restart.sh vi restart.sh
文件內容:
#!/bin/bash kow=/opt/apache-tomcat-7.0.54 open_acct=/opt/open_acct2 echo "killing tomcat..." # 找到tomcat的進程id,並kill掉 ps -ef | grep -v grep | grep -i '/opt/apache-tomcat-7.0.54\|/opt/open_acct2' | awk '{print $2}' | sed -e "s/^/kill -9 /g" | sh - echo "killed tomcat" echo "starting kow tomcat..." # 重新啟動tomcat $kow/bin/startup.sh $open_acct/tomcat2/bin/startup.sh $open_acct/apache-tomcat-7.0.54/bin/startup.sh
然后保存文件,添加可執行權限 :
chmod +x restart.sh
然后直接運行就可以重啟多個tomcat命令了。
注:上面有一部分 sed 和 sh 這兩個命令查了文檔也不太明白是什么意思,但大致感覺就是把進程ID緩存起來然后當作shell腳本去執行。
我的想法是根據tomcat的執行路徑去匹配查找我想要的刪除掉的進程,
#這一段內容是匹配多個不同值,可以修改為你想匹配的路徑 '/opt/apache-tomcat-7.0.54\|/opt/open_acct2'
參考鏈接: