ProFTPDのサービスへの登録

Fedoraにはサービスという管理ツールがあって、例えば

# service httpd start

このようにして、各種デーモンを簡単に起動したり(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コマンドが使えるようになったと思います。

# service proftpd start

次にGUIのサービス管理ツールに登録する方法ですが、それには以下のコマンドを使います。

# chkconfig --add proftpd

このとき必要になるのが、上のスクリプトで赤字で書いたコメント部分です。

# chkconfig: 2345 21 21

これは、chkconfig用の設定で、1番初めの数字がどのランレベルで実行させるか、2番目の数字が起動時に何番目に実行させるか、3番目の数字は終了時に何番目に終了させるかを表しています。
詳しくはTurboLinuxの情報ですが、こちらに書いてあるので参考にして下さい。

以上でサービスの登録が完了致しました。
これで、自分でコンパイルしたProFTPDも、yumで入れたftpd同様簡単に扱えるようになりますね。

コメントを残す