2013-07-24 5 views
3

с Ubuntu машине я хотел бы запустить MPlayer как демон.init.d: ​​начиная MPlayer с помощью «старт-стоп-демон»

В плане следующая конфигурация является именно то, что мне нужно:

mplayer -slave -idle -input file=/tmp/mplayercontrol.

Теперь, я написал следующее сценарий:

# /etc/init.d/mplayerd 
### BEGIN INIT INFO 
# Provides:   mplayer 
# Required-Start: $network $syslog 
# Required-Stop:  $network $syslog 
# Should-Start:  $time 
# Should-Stop:  $time 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: Start and stop the mplayer daemon 
# Description:  mplayer daemon 
### END INIT INFO 

CONTROLFILE="/tmp/mplayercontrol" 
DAEMONUSER=jb 

DAEMON=/usr/bin/mplayer 
DAEMON_ARGS="-slave -idle -input file=$CONTROLFILE" 
PIDFILE=/tmp/mplayerd.pid 

start() { 
    echo "Starting mplayer..." 

    # Prepare fifo file 
    rm -rf $CONTROLFILE 
    mkfifo $CONTROLFILE 
    chmod a+rw $CONTROLFILE 

    start-stop-daemon --start --quiet --user $DAEMONUSER \ 
      --make-pidfile --pidfile $PIDFILE --background  \ 
      --exec /bin/bash -- -c "$DAEMON $DAEMON_ARGS > /tmp/mplayerd.log 2>&1" 

    echo "Started for user: $DAEMONUSER." 
} 

stop() { 
    echo "Stopping mplayer..." 
    kill -9 `cat $PIDFILE` 
    # Cleanup fifo file 
    rm -rf $CONTROLFILE 
} 

status() { 
    if [ -z `cat $PIDFILE` ]; 
    then 
     echo "mplayerd: not running." 
    else 
     echo "mplayerd: running." 
    fi 
} 


case "$1" in 
    start) 
    start 
    ;; 

    stop) 
    stop 
    ;; 

    restart|reload|force-reload) 
    stop 
    start 
    ;; 

    status) 
    status 
    ;; 

    *) 
    echo "Usage: /etc/init.d/mplayerd {start|stop|reload|force-reload|restart|status}" 
    exit 1 

esac 

exit 0 

Но есть что-то не так, потому что, когда я пытаюсь запустить скрипт игрок возвращает ошибку и не запускается правильно:

[email protected]:/tmp# service mplayerd start 
Starting mplayer... 
Started for user: jb. 
[email protected]:/tmp# 
[email protected]:/tmp# cat /tmp/mplayerd.log 
Cannot find HOME directory. 
MPlayer 1.0rc4-4.4.3 (C) 2000-2010 MPlayer Team 
[email protected]:/tmp# 

Additionaly, как можно автоматически запускать /etc/inid.d/mplayerd stop при запуске и stop на выключения?

Спасибо!

ответ

2

Объявление HOME=/home/$DAEMONUSER перед командой оболочки.

start-stop-daemon --start --quiet --user $DAEMONUSER \ 
     --make-pidfile --pidfile $PIDFILE --background  \ 
     --exec /bin/bash -- -c "HOME=/home/$DAEMONUSER $DAEMON $DAEMON_ARGS > /tmp/mplayerd.log 2>&1" 

 Смежные вопросы

  • Нет связанных вопросов^_^