在linux下用shell將tomcat做成服務
阿新 • • 發佈:2018-12-31
收下申明下,自己不是很會寫shell,指令碼是查了了自己改的。找了很多個總是有各種各樣的問題,這個是親測沒有問題,希望對讀者有幫助
在 /etc/init.d/ 下面建立檔案 tomcat
cd /etc/init.d
touch tomcat
vim tomcat
寫入指令碼程式碼:
#!/bin/bash
# # tomcat: Start/Stop/Restart tomcat # author: lzh # http://www.lerx.com # chkconfig: 2345 80 20 # description: Tomcat is a Java Servlet Container # # # match these values to your environment: export CATALINA_BASE=/var/petschool/soft/apache-tomcat-7.0.5 export CATALINA_HOME=/var/petschool/soft/apache-tomcat-7.0.5 export CATALINA_TMPDIR=/var/petschool/soft/apache-tomcat-7.0.5/temp export JRE_HOME=/var/petschool/soft/jdk/jre export CLASSPATH=/var/petschool/soft/apache-tomcat-7.0.5/bin/bootstrap.jar export JAVA_HOME=/var/petschool/soft/jdk tomcat_e=/var/petschool/soft/tomcat RETVAL=0 prog="tomcat" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network TOMCAT_PROCESS_STR=`ps aux | grep 'java.*tomcat' | grep -v grep` PROCESS_ARRAY=(${TOMCAT_PROCESS_STR// / }) TOMCAT_PROCESS_ID=${PROCESS_ARRAY[1]} start(){ if [ -e $tomcat_e ];then echo -n "$prog: allready running" exit 1 fi echo -n $"Starting $prog: " echo -e "\n" $CATALINA_HOME/bin/startup.sh touch $tomcat_e } stop(){ echo -n $"Stopping $prog: " for ((a=1;a<=100;a++)) do CHECK_STR_LENGTH=0 TOMCAT_PROCESS_CHECK_STR=`ps aux | grep 'java.*tomcat' | grep -v grep` CHECK_STR_LENGTH=${#TOMCAT_PROCESS_CHECK_STR} if [ $CHECK_STR_LENGTH != 0 ] then kill $TOMCAT_PROCESS_ID sleep 2 echo -n . else break fi done echo -e "\n" rm -f $tomcat_e } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo -n $"Usage: $0 {start|stop|restart}" ;; esac exit $RETVAL
頁頭的幾個地址定義相信大家應該明白,就是自己的jdk,jre, tomcat的地址,tomcat_e 的地址自己定義是用來儲存允許狀態的檔案。
儲存tomcat檔案。
接下來是服務檔案授權
sudo chmod +x /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on
然後就可以用 service tomcat start/stop/restart 來進行tomcat管理了。
謝謝!