Linuxのモジュールの起動は、基本的にはランレベル別にスクリプトファイルを作り登録して、設定は、ntsysvコマンドもしくはchkconfigコマンドにより行う事になっている。また、FreeBSDでは、モジュール別に専用の起動スクリプトがある。しかし、本来イレギュラーだが俺は別の方法でモジュールの起動を行っている。ここでは、その方法を説明する。この方法は、モジュール別の起動順序を間違えると立ち上がらないモジュールが発生する。しかしながら、鯖の場合そうそう再起動をかけることは無いと思うので、俺はあえてこの方法でモジュール起動を行っている。
1.Linuxの場合
Linuxの場合は、/etc/rc.d/rc.localと言うスクリプトファイルの最後に記述する。
例えばこんな感じ、
# vi /etc/rc.d/rc.local
省略
# Apache Start
if [ -x /usr/local/apache/bin/apachectl ];then
/usr/local/apache/bin/apachectl start
fi
# Postgresql Start
if [ -x /usr/local/pgsql/bin/postmaster ]; then
su postgres -c “/usr/local/pgsql/bin/postmaster -i -S -D /usr/local/pgsql/data &”
fi
# Samba Start
/usr/local/samba/bin/nmbd -D
/usr/local/samba/bin/smbd -D
# iplog start
if [ -f /usr/local/sbin/iplog ]; then
/usr/local/sbin/iplog
fi
上から、Apache起動、Postgresql起動、samba起動、iplog起動のような感じである。
また、rc.localスクリプトでの起動はモジュール別の対処が考えられるので再起動して起動しないモジュールが有った場合は、モジュール起動設定の順番を換えてみること。
2.FreeBSDの場合
FreeBSDの場合は、/etc/rcと言うスクリプトファイルの最後に記述する。
例えばこんな感じ、
# vi /etc/rc
省略
# Apache Start
if [ -x /usr/local/apache/bin/apachectl ];then
/usr/local/apache/bin/apachectl start
fi
# Postgresql Start
if [ -x /usr/local/pgsql/bin/postmaster ]; then
su postgres -c “/usr/local/pgsql/bin/postmaster -i -S -D /usr/local/pgsql/data &”
fi
# Samba Start
/usr/local/samba/bin/nmbd -D
/usr/local/samba/bin/smbd -D
# iplog start
if [ -f /usr/local/sbin/iplog ]; then
/usr/local/sbin/iplog
fi
echo ”
date
また、Linuxと同じようにrcスクリプトでの起動はモジュール別の対処が考えられるので再起動して起動しないモジュールが有った場合は、モジュール起動設定の順番を換えてみること。
3.Debian Linuxの場合
Debianの場合は、/etc/rc.localファイルへ記述する。気きをつけなけらばならないのは Debian のrc.localでは、 if [ -x /usr/local/apache/bin/apachectl ];then ・・・・・・・・ fi の記述が使えないことだ。したがって、以下のようにダイレクトにコマンドを実行する記述が必要。
# vi /etc/rc.local
省略
# Apache Start
/usr/local/apache/bin/apachectl start
# Postgresql Start
su postgres -c “/usr/local/pgsql/bin/postmaster -i -S -D /usr/local/pgsql/data &”
# Samba Start
/usr/local/samba/bin/nmbd -D
/usr/local/samba/bin/smbd -D
# iplog start
/usr/local/sbin/iplog
以上
コメント