Redhat系では、下記のように行ないます。
パッケージによっては雛型が用意されています。ない場合は、自分で作成します。
#!/bin/sh # # Startup script for the tomcat # # chkconfig: 345 80 15 # description: Tomcat # Source function library. . /etc/rc.d/init.d/functions case "$1" in 'start') if [ -f /usr/local/tomcat/bin/startup.sh ]; then echo "Starting tomcat (~o~)//" export JAVA_HOME=/usr/local/j2sdk/; \ export TOMCAT_HOME=/usr/local/tomcat;/usr/local/tomcat/bin/startup.sh fi ;; 'stop') echo "Stopping tomcat (~o~)/~~~~" export JAVA_HOME=/usr/local/j2sdk/; \ export TOMCAT_HOME=/usr/local/tomcat;/usr/local/tomcat/bin/shutdown.sh ;; 'restart') $0 stop $0 start ;; esac exit 0
以下、説明をします。
#!/bin/sh # # Startup script for the tomcat
使うシェルの指定と、スクリプトに関する説明。
# # chkconfig: 345 80 15
第1引数が、ランレベルの指定です。上記の場合は、3,4,5が指定されています。第2引数が起動時の優先順位です。数値が少ないほうが先に起動されます。第3引数がシャットダウン時の優先順位です。
# description: Tomcat
起動スクリプトに関する説明を書きます。前述で書いたものは、ソースコメントになります。別に同じ内容で構いません。
# Source function library. . /etc/rc.d/init.d/functions
case "$1" in 'start') if [ -f /usr/local/tomcat/bin/startup.sh ]; then echo "Starting tomcat (~o~)//" export JAVA_HOME=/usr/local/j2sdk/; \ export TOMCAT_HOME=/usr/local/tomcat;/usr/local/tomcat/bin/startup.sh fi ;;
ケース文で、入力引数("start","stop"..)ごとに処理を分岐します。ケース文内の内容は、各スクリプトに依存します。上記の例では、echoでメッセージを表示して、exportで環境変数を設定し、最後に起動スクリプトを呼び出しています。最初のif文は、起動スクリプトが存在するか、チェックをしています。
用意した起動スクリプトを、配置します。作成した起動スクリプトを、tomcatとして、以下のコマンドを書きます。
# cp ./tomcat /etc/rc.d/init.d/
続いて、起動スクリプトに実行権を与えます。
# chmod 0755 /etc/rc.d/init.d/tomcat
起動スクリプトの配置が終わったら、chkconfigに登録します。
# chkconfig --add tomcat
続いて、自動的に起動するように、設定します。
# chkconfig tomcat on
きちんと、設定が反映されたか、確認します。3,4,5がオンになっていれば、OKです。
# chkconfig --list tomcat tomcat 0:off 1:off 2:off 3:on 4:on 5:on 6:off
Tomcatは、Apacheより先に起動する必要があります。そこで、# chkconfig の第2引数による起動優先順位を、Apacheより小さくします。