Fedoraにはサービスという管理ツールがあって、例えば
このようにして、各種デーモンを簡単に起動したり(start)再起動したり(restart)停止させたり(stop)起動状況を見たり(status)できます。
また、GUIの管理ツールの中にもサービスというものがあり、ここでOS起動時に自動的に起動するかどうかなどの設定ができたりします。
今回は、自分でソースからコンパイルしたProFTPDを、このサービスに登録する方法を紹介します。
まず、serviceコマンドで制御できる方法ですが、
/etc/rc.d/init.d/proftpdというファイルを作り、そこに制御用のスクリプトを書きます。
スクリプトの内容は、"/etc/init.d/proftpd"でググってもらえばサンプルがいっぱいあるので、その中のどれかを参考にしてもらえればいいと思うのですが、自分は以下のように書きました。
#!/bin/bash
# chkconfig: 2345 21 21
. /etc/rc.d/init.d/functions
if [ ! -f /etc/sysconfig/network ]; then
exit 0
fi
. /etc/sysconfig/network
RETVAL=0
start() {
echo -n 'Starting proftpd: '
daemon /usr/sbin/proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}
stop() {
echo -n 'Stopping proftpd: '
killproc proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status proftpd
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit $RETVAL
一応参考までに載せましたが、厳密なチェックなどは省いていますし、適当にコピペして作ったスクリプトなので、やっぱりGoogle先生に聞いて自分なりのスクリプトを書いた方がいいような気もします。
これで、serviceコマンドが使えるようになったと思います。
次にGUIのサービス管理ツールに登録する方法ですが、それには以下のコマンドを使います。
このとき必要になるのが、上のスクリプトで赤字で書いたコメント部分です。
これは、chkconfig用の設定で、1番初めの数字がどのランレベルで実行させるか、2番目の数字が起動時に何番目に実行させるか、3番目の数字は終了時に何番目に終了させるかを表しています。
詳しくはTurboLinuxの情報ですが、こちらに書いてあるので参考にして下さい。
以上でサービスの登録が完了致しました。
これで、自分でコンパイルしたProFTPDも、yumで入れたftpd同様簡単に扱えるようになりますね。