【Icecast】別ポートでIcecastサーバーを複数起動する

Icecastを複数起動して、管理画面も別のアドレスで参照したかったので設定したメモ。

icecastのインストールの仕方は前の記事を参考に。以下は既にicecastのコンパイルとインストールが終わっている前提。

ポート8001用のicecastにする場合は次のようにする。

プログラムをコピーする
# cp /usr/local/bin/icecast /usr/local/bin/icecast8001

起動スクリプトをicecast8001用に書き換える

#!/bin/sh
#
# icecast      This shell script takes care of starting and stopping
#              the icecast multimedia streaming systen.
#
# chkconfig: - 85 15
# description: icecast is a multimedia streaming daemon. It is used to \
#              relay and offer multimedia streaming content.
# processname: icecast
# pidfile: /var/run/icecast/icecast.pid

DAEMON=/usr/local/bin/icecast8001
CONFIGFILE="/usr/local/etc/icecast8001.xml"
LOCKFILE="/var/lock/subsys/icecast8001"
PIDNAME=icecast8001

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

[ -x $DAEMON ] || exit 0

# See how we were called.
case "$1" in
  start)
	# Start daemon.
	echo -n $"Starting $PIDNAME streaming daemon: "
	daemon "$DAEMON -b -c $CONFIGFILE > /dev/null"
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch $LOCKFILE
	;;
  stop)
	# Stop daemon.
	echo -n $"Shutting down $PIDNAME streaming daemon: "
	killproc $PIDNAME
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
	;;
  status)
	status $PIDNAME
	RETVAL=$?
	;;
  restart)
	$0 stop
	$0 start
	;;
  reload)
	echo -n $"Reloading $PIDNAME: "
	killproc $PIDNAME -HUP
	RETVAL=$?
	echo
	;;
  condrestart)
        [ -f $LOCKFILE ] && restart || :
        ;;
  *)
	echo $"Usage: $0 {start|stop|status|restart|reload}"
	RETVAL=1
	;;
esac

exit $RETVAL

このファイルを/etc/rc.d/init.d/に保存する。

設定ファイルをコピーして8001用に編集する

# cp /usr/local/etc/icecast.xml /usr/local/etc/icecast8001.xml
# vi /usr/local/etc/icecast8001.xml

    <listen-socket>
        <port>8001</port>
    </listen-socket>
    <paths>
        <webroot>/usr/local/share/icecast8001/web</webroot>
        <adminroot>/usr/local/share/icecast8001/admin</adminroot>
    </paths>
    <logging>
        <accesslog>access8001.log</accesslog>
        <errorlog>error8001.log</errorlog>
    </logging>

管理画面用のXSLTファイルをコピーする。
# cp /usr/local/share/icecast /usr/local/share/icecast8001

起動してみる。
# /etc/rc.d/init.d/icecast8001 start

プロセスを確認してみる。
# ps -A | grep icecast

8001のポートを空けるのを忘れずに。

 

<関連リンク>

【Icecast】出力されるstream_startのフォーマットを変更する
【Linux】Icecast serverのクライアントIceSをコンパイル、インストール
Icecast + winamp + edcastで音声のストリーミング(ラジオ局)
Icecastのコンパイルとインストール