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

GentooLinux起動スクリプトの極意!

GentooLinuxの起動スクリプトは、 /etc/init.d/ ディレクトリに入っている。パーミッションは無論755で実行可能にしてある。
また、スクリプトの内容は、以下の様になっている。


以下は、ApacheとPostgresqlをソースからコンパイルして起動スクリプトを自作したものである。



1.Apacheの起動スクリプト

#!/sbin/runscript

depend() {

need net

}

start() {
ebegin “Starting apche”
/usr/local/apache/bin/apachectl start &>/dev/null
eend $?
}

stop() {
ebegin “Stoping apche”
/usr/local/apache/bin/apachectl stop &>/dev/null
eend $?
}

restart() {
ebegin “Restarting apche”
/usr/local/apache/bin/apachectl restart &>/dev/null
eend $?
}


2.Postgresqlの起動スクリプト

#!/sbin/runscript

PGACCOUNT=”postgres”
PGDATA=”/usr/local/pgsql/data”
POSTMASTER=”/usr/local/pgsql/bin/postmaster”
PG_CTL=”/usr/local/pgsql/bin/pg_ctl”


depend() {

need net

}

start() {
ebegin “Starting Postgresql”
su – $PGACCOUNT -c “$POSTMASTER -S -i -D $PGDATA” &>/dev/null
echo
touch /var/lock/subsys/postgres
eend $?
}

stop() {
ebegin “Stoping Postgresql”
$PG_CTL -m f -D $PGDATA stop
echo
rm -f /var/lock/subsys/postgres
eend $?
}

この中で、Apacheのスクリプトにも先頭にかかれていたが、runscriptと言うのはGentooスクリプトの実行時のエラーをかなり吸収してくれる頭の良いスクリプトラッパーらしい。
詳しいことは、俺も良くわかっていない(ーー;)

それで、RedHat系で言う /etc/rc.d/rc.localに匹敵するスクリプトはGentooで言うと、

# vi /etc/conf.d/local.start

このファイルにモジュールの実行記述をしてやると良いらしいが。しかし、 /etc/init.d/ の中に上記で説明したような起動スクリプトを置いて動かした方が無難のようである。
事実、俺がApacheとPostgresqlの起動書式を書いて動かそうと思ったが、うまく動かなかった。
いずれにしても、イレギュラーな方法なのでlocal.startは最後の手段にとっておくことにした。

以上

コメント