Kozupon.com    
 
 Unixのイレギュラーな俺的起動方法伝授!


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

以上


 
 
 



Copyright 2007 Kozupon.com.