先日、CentOS7にインストールする方法を紹介したIRCデーモン”charybdis”ですが、今日はCentOS6にインストールしてみました。 CentOS7はsystemdですが、CentOS6はUpstartなので管理に使うファイルが違います。コンパイルなどの手順は同じですので、システム起動時に自動起動する設定と、 /etc/rc.d/init.d に設置するスクリプトだけ書きます。

シェルスクリプトを定位置に置く

以下のURLからテキストファイルをダウンロードして、/etc/rc.d/init.d/charybdis に保存します。 https://gist.github.com/koi-chan/7cb1a01b7a99928263e4 管理者権限が必要です。所有者もroot.rootに、パーミッションは755に変えましょう。

# wget https://gist.githubusercontent.com/koi-chan/7cb1a01b7a99928263e4/raw/170feda3d77b7fb807b25b43d2e5388ddc90f7b0/ircd
# mv ircd /etc/rc.d/init.d/charybdis
# chown root.root /etc/rc.d/init.d/charybdis
# chmod 755 /etc/rc.d/init.d/charybdis

システムに登録する

スクリプトを置いただけでは起動しません。システムにサービスとして登録し、自動起動を有効にします。

# chkconfig --add charybdis
# chkconfig charybdis on
# chkconfig --list charybdis
charybdis       0:off   1:off   2:on    3:on    4:on    5:on    6:off

これで、次回システム起動時から自動的にIRCデーモンも立ち上がるようになります。

デーモンを手動で起動する

他のデーモンと同じように起動できます。

# service charybdis start

スクリプトの全文

CentOS5のEPELリポジトリにあった ircd-ratbox のパッケージに含まれているスクリプトを編集して作成しました。

#!/bin/sh
#
# charybdis	  Startup script for the ircd server
#
# chkconfig: - 85 15
# description: charybdis IRC daemon 
#
# processname: ircd
# config: /home/charybdis/ircd/etc/ircd.conf
# pidfile: /home/charybdis/ircd/etc/ircd.pid

# Source function library
. /etc/rc.d/init.d/functions

USER="charybdis"
HOME="/home/$USER"
prog="ircd"
ircd="$HOME/ircd/bin/ircd"

if [ -f $HOME/ircd/etc/sysconfig ]; then
	. $HOME/ircd/etc/sysconfig
fi

if [ -z "$PIDFILE" ]; then
    PIDFILE=$HOME/ircd/etc/ircd.pid
fi

RETVAL=0

start() {
	echo -n $"Starting $prog: "
	touch $PIDFILE
	chown $USER $PIDFILE
	daemon --user $USER $ircd -pidfile $PIDFILE
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
	return $RETVAL
}

stop() {
	echo -n $"Stopping $prog: "
	killproc $ircd
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
	return $RETVAL
}

reload() {
	echo -n $"Reloading $prog: "
	killproc $ircd -HUP
	RETVAL=$?
	echo
	return $RETVAL
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		stop
		start
		;;
	condrestart)
		if [ -f /var/lock/subsys/$prog ]; then
			stop
			start
		fi
		;;
	reload)
		reload
		;;
	rehash)
		reload
		;;
	status)
		status $ircd
		RETVAL=$?
		;;
	*)
		echo $"Usage: $0 {start|stop|restart|condrestart|reload|rehash|status}"
		RETVAL=1
esac

exit $RETVAL

The following two tabs change content below.

こいちゃん

とある時期に空を泳ぐ魚。 風があると嬉しくなる。少量なら雨にあたるのも好きかも。 って、何でこっちに向けたホースをもって蛇口をひねろうとしてるの!? よろしくおねがいします