tomcat7
/etc/init.d/에는 tomcat 사용자 아래에서 내 응용 프로그램 서버(tomcat)를 시작하고 중지하는 간단한 서비스 스크립트가 있습니다 . RHEL6에서.
#!/bin/bash
# description: Tomcat Start Stop
# processname: tomcat
# chkconfig: 234 20 80
CATALINA_HOME=/usr/local/www/tomcat-7.0.54
case $1 in
start)
/bin/su tomcat $CATALINA_HOME/bin/startup.sh
;;
stop)
/bin/su tomcat $CATALINA_HOME/bin/shutdown.sh 30
;;
esac
exit 0
좋은 결과. 라는 스크립트를 startup.sh
호출 합니다 . 이는 애플리케이션 서버와 함께 제공되는 미리 작성된 스크립트입니다.shutdown.sh
catalina.sh
catalina.sh
예를 들어 다음과 같이 직접 사용할 수 있습니다 ../catalina.sh stop 30 -force
이를 통해 대기 시간을 30초로 지정한 다음 프로세스가 아직 종료되지 않은 경우 kill -9를 수행할 수 있습니다. 하지만 tomcat7
서비스 스크립트에서 작동하도록 변수를 가져올 수 없습니다 . 내가 그것을 다음과 같이 바꾸면 :
stop)
/bin/su tomcat $CATALINA_HOME/bin/catalina.sh stop 30 -force
오류가 발생합니다.
[root@543917-web1 bin]# service tomcat7 stop
/bin/su: invalid option -- 'o'
catalina.sh 스크립트를 변경하지 않고 세 개의 매개변수를 전달할 수 있습니까?
티아
답변1
당신은 그것을 사용할 수 있습니다수그리고 -c
:
/bin/su tomcat -c "$CATALINA_HOME/bin/catalina.sh stop 30 -force"
su
매뉴얼 페이지 에서 :
-c, --command=COMMAND
pass a single COMMAND to the shell with -c