반응형
tomcat7 서비스 시작 스크립트. update 버전!
전에 restart 스크립트가 장애발생 위험이 있어서 개선이 필요하다고 했다.
catalina.sh에서 CATALINA_PID 경로를 지정했으면, tomcat 구동시 pid 파일이 생성된다.
톰캣 pid 구하는 방법
PID=`cat "$CATALINA_PID"`
현재 pid가 떠 있는지 확인
ps -p $PID > /dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "process is alive."
else
echo "process is not found."
fi
- 주의! ; 스크립트에서 주석도 써줘야 함. (chkconfig에서 인식문제)
- 아래 스크립트를 /etc/init.d에 생성 (파일명은 서비스명)
- 서비스 자동시작 추가
- tomcat 계정으로 서비스를 구동하므로 tomcat 계정이 시스템에 있어야 한다 .
#chkconfig --add tomcat7
#chkconfig --level 2345 tomcat7 on
#chkconfig --list tomcat7
# cat tomcat7
---------------------------------------------------
#!/bin/bash
#
# tomcat This shell script takes care of starting and stopping Tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Short-Description: start and stop tomcat
### END INIT INFO
TOMCAT_USER=tomcat
TOMCAT_HOME="/usr/tomcat7"
CATALINA_PID=/usr/tomcat7/bin/tomcat.pid
SHUTDOWN_WAIT=45
tomcat_pid() {
#톰캣 pid 구하는 방법
PID=`cat "$CATALINA_PID" 2>&1`
#현재 pid가 떠 있는지 확인
ps -p $PID > /dev/null 2>&1
if [ $? -eq 0 ] ; then
# echo "process is alive."
echo $PID
else
# echo "process is not found."
echo ""
fi
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is already running (pid: $pid)"
else
# Start tomcat
echo "Starting tomcat"
/bin/su - -c "cd $TOMCAT_HOME/bin && $TOMCAT_HOME/bin/startup.sh" $TOMCAT_USER
fi
return 0
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Stoping Tomcat"
/bin/su - -c "cd $TOMCAT_HOME/bin && $TOMCAT_HOME/bin/shutdown.sh" $TOMCAT_USER
let kwait=$SHUTDOWN_WAIT
count=0
count_by=5
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
do
echo "Waiting for processes to exit. Timeout before we kill the pid: ${count}/${kwait}"
sleep $count_by
let count=$count+$count_by;
done
if [ $count -gt $kwait ]; then
echo "Killing processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $pid
fi
else
echo "Tomcat is not running"
fi
return 0
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
esac
exit 0
'Develop > Java' 카테고리의 다른 글
[JavaScript] 스탑와치 밀리초/StopWatch milliseconds (0) | 2019.08.27 |
---|---|
Java RSA 간단한 비대칭키 암호 서명 검증 테스트 (0) | 2019.08.14 |
tomcat을 root말고 다른 계정으로 운영하기 (0) | 2018.03.10 |
자주 사용하는 이클립스(eclipse) 단축키 (0) | 2018.03.07 |
[JS] 입력창에 특정키, 숫자만 입력받기(실시간) (0) | 2018.03.06 |