自動起動スクリプト

現在のプロジェクトでApacheTomcatPostgreSQLの自動起動スクリプトが必要となったのでメモ。

Apache Web Serverの自動起動スクリプト

Apacheの自動起動スクリプトは、ソースを展開したディレクトリ配下に存在する。今回は、/usr/local/srcでソースを展開したため、対象ファイルは以下の通り。
/usr/local/src/httpd-2.2.9/build/rpm/httpd.init
ただし上記ファイルは、RPMでインストールした場合の自動起動設定となっているので、インストール先に合わせて以下のように修正した。

No 初期状態 変更後
1 /etc/httpd /usr/local/apache2
2 /usr/sbin /usr/local/apache2/bin
su -
cd /etc/init.d
cp /usr/local/src/httpd-2.2.9/build/rpm/httpd.init ./httpd
vi httpd
# ここで修正
chmod 755
chkconfig --add httpd
chkconfig httpd on
chkconfig --list httpd
httpd   0:off   1:off   2:off   3:on    4:off   5:on    6:off

Tomcatの自動起動スクリプト

Tomcatの自動起動スクリプトは自作した。内容は以下の通り。

#!/bin/sh
#
# Startup script for the Apache Tomcat
#
# chkconfig: 35 80 15
# description: Apache Tomcat 5.5.26

# Source function library
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

TOMCAT_SCRIPT=/usr/local/apache-tomcat-5.5.26/bin/catalina.sh
TOMCAT_USER=root

[ -f $TOMCAT_SCRIPT ] || exit 0

# See how we were called.
case "$1" in
    start)
        # Start daemons.
        if [ -f /var/lock/subsys/tomcat ] ; then
            echo "Tomcat already started!"
            exit 1
        fi
        echo -n "Starting Tomcat: "
        su -s /bin/bash - $TOMCAT_USER -c "$TOMCAT_SCRIPT start"
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
        ;;
   stop)
        # Stop daemons.
        if [ ! -f /var/lock/subsys/tomcat ] ; then
            echo "Tomcat already stopped!"
            exit 1
        fi
        echo -n "Shutting down Tomcat: "
        su -s /bin/bash - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop"
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat
        ;;
    *)
        echo "Usage: $TOMCAT_PROG {start|stop}"
        exit 1
esac

exit 0

作成後はApacheの場合とほぼ一緒。

su -
cd /etc/init.d
vi tomcat
# ここで上記内容のファイルを作成
chmod 755
chkconfig --add tomcat
chkconfig tomcat on
chkconfig --list tomcat
tomcat  0:off   1:off   2:on    3:on    4:on    5:on    6:off

PostgreSQLの自動起動スクリプト

PostgreSQLの自動起動スクリプトも、ソースを展開したディレクトリ配下に存在する。
/usr/local/src/postgresql-8.3.3/contrib/start-scripts/linux
ただし、このままでは起動順序がTomcatApacheの後になってしまうため、起動順序に70を指定した。

#! /bin/sh

# chkconfig: 2345 70 02
# description: PostgreSQL RDBMS
# 以下省略

あとはApacheTomcatとともにほぼ一緒

su -
cd /etc/init.d
cp /usr/local/src/postgresql-8.3.3/contrib/start-scripts/linux ./postgres
vi postgres
# ここで修正
chmod 755
chkconfig --add postgres
chkconfig postgres on
chkconfig --list postgres
postgres    0:off   1:off   2:on    3:on    4:on    5:on    6:off

Tomcatの自動起動スクリプトがかなり手抜きな感じがしてイヤな感じだけど、しばらくはこのままにしておこう。