2017-02-12 20 views
0

最新のバージョンを入手するには、direct downloadを使用して自分のサーバーにIcecast 2.4.3をインストールしました。サービスとしてicecastを作成して再起動するにはどうすればいいですか?

このように、私は自分のディストリビューションで配布されたバージョン(debian 8)を使用しないので、デーモンはデフォルトで有効になっていません。

対応するパスで変更したスクリプトが見つかりましたが、実行に間違いがあります。

スクリプトicecast.sh

#!/bin/bash 
# 
# Init file for Icecast server daemon 
# 
# chkconfig: 345 55 25 
# description: Icecast streaming mp3 server daemon 
# 
# processname: icecast 
# config: /etc/icecast.xml 
# pidfile: /var/run/icecast.pid 

# source function library 
# . /etc/rc.d/init.d/functions : returns an error on debian 8 
. /lib/lsb/init-functions 

# pull in sysconfig settings 
[ -f /etc/sysconfig/icecast ] && . /etc/sysconfig/icecast 

RETVAL=0 
prog="icecast" 

# Some functions to make the below more readable 
PREFIX=/usr/local 
PATH=$PATH:$PREFIX/bin 
PIDFILE=/icecast/icecast.pid 
CONF_FILE=/icecast/conf/icecast.xml 

[ -f $PREFIX/bin/icecast ] || (echo Failed to locate icecast binary: $PREFIX/bin/icecast && exit) 
[ -f $CONF_FILE   ] || (echo Failed to locate icecast configuration file: $CONF_FILE && exit) 

OPTIONS="-b -c $CONF_FILE" 

start() 
{ 
    echo -n $"Starting $prog:" 
    ulimit -c unlimited # dump core for debugging purposes 
    ulimit -n 32768 
    daemon icecast icecast $OPTIONS 
    RETVAL=$? 
    [ "$RETVAL" = 0 ] && touch /var/lock/subsys/icecast 
    echo 
    pidof icecast > $PIDFILE 
    return $RETVAL 
} 

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

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

condrestart() 
{ 
    [ -e /var/lock/subsys/icecast ] && restart 
    return 0 
} 

case "$1" in 
    start) 
     start 
     ;; 
    stop) 
     stop 
     ;; 
    restart) 
     stop 
     # wait for listening sockets to clear 
     echo "Waiting 5 seconds before restarting..." 
     sleep 5 
     start 
     ;; 
    reload) 
     reload 
     ;; 
    condrestart) 
     condrestart 
     ;; 
    status) 
     status icecast 
     RETVAL=$? 
     ;; 
    *) 
     echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}" 
     RETVAL=1 
esac 
exit $RETVAL 

そして、私はsh icecast.sh statusをやっているときに私が取得していますエラー:

# sh icecast.sh status 
icecast.sh: line 93: status : unknow command 

Q1:どのように私はこのエラーを修正しますか?

Q2icecast restart serviceのような機能コマンドを取得するにはどうすればよいですか?

Q3:サーバーが自動的に再起動する場合、Icecastを自動的に再起動するにはどうすればよいですか?

答えて

1
  1. あなたからのパッケージをインストールします。apt-get install icecast2yum install icecast、それは何でも)。通常、pakage managerは、Icecastの起動/停止を許可するinitスクリプトもインストールします。
  2. (あなたはIcecastの-KHのブランチで公式Icecastのを交換したり、独自のコンパイルフラグを使用する必要がある場合など)、ソースからビルド、which icecastまたはwhereis icecast
  3. ダウンロードIcecastのであなたのIcecastののpathtを取得します。
  4. オリジナルのicecastバイナリを(2)からビルドしたバイナリに置き換えます。しかし、元のバージョンをバックアップする方が常に良いです。
  5. /etc/inid/icecast restartまたはsystemctr restart iecastは、あなたのIcecastのバージョンで動作するはずです。
  6. systemctl enable icecast
+0

説明していただきありがとうございます。また、再起動後に起動する方法 – Zl3n

2

答えは、のパッケージをdebian backportsのいずれかのパッケージから使用することです。 TLSはパッケージをofficial Xiph.org repositoriesからサポートする必要があります。

これは、あなた自身でリリースを監視し、必要な変更を把握することなくパッケージのアップデートを受け取ることを保証します。

はまた2.4.3がWindowsののみのリリースだったので、この時点でのLinux/Unix用の最新リリースは、2.4.2であることに注意してください。 Linux/Unix用にコンパイルされた場合のコードは同じです。

+0

は、あなたの答えをありがとう、あなたのIcecastの再起動の実行後に開始されることを確認するには!それは私が自分自身に言ったことです。しかし、私は現在生産中のサーバーを持っているので...私は別の方法を試みた。同じパスにインストールしないことを知っていると同時に、新しいインストールを並行して実行できると思いますか?もう一つ、[Xiph.org repo](http://download.opensuse.org/repositories/multimedia:/xiph/Debian_8)です。0 /)バージョンのデーモンを自動的にインストールしますか? – Zl3n

+0

デフォルトでは、上書きされない限り、/ usr/localにインストールされ、バイナリ名は 'icecast'になります。 debianのパッケージ化は、バイナリ名 'icecast2'と非ローカルプレフィックスを使用します。パラレルインストールは問題ありません。 debianとxiph.orgの両方のパッケージがサービスをインストールします。パッケージはとにかくほとんど同じです。あなたがうまくいけば、icecastソースディレクトリで '' 'make uninstall''を実行して、/ usr/localのビットを取り除くことができます。 – TBR

+0

ありがとうございました – Zl3n

関連する問題