2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

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

以上

コメント