[RISOLTO] Fare partire prima XBMC e poi VDR

MythTV, Tvtime, Mplayer etc.
Anche programmi o script di conversione tipo
projectx, transcode, vdrconvert, dvdauthor etc.

Moderatori: ragno, tapino, alez, zulu, davidea

Rispondi
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

[RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da alez »

Magari è una cosa banale da realizzare ma non mi ricordo come si possa fare...

Vorrei realizzare un mediacenter HD che parta di default con XBMC e che da questo sia possibile fare partire solo quando serve VDR (che servirebbe tipicamente solo come PVR per il digitale terrestre, quindi solo per programmare / rivedere le registrazioni)

Il contrario con VDR e externalplayer funziona bene ma mi piacerebbe che partisse di default XBMC... ci vorrebbe qualcosa che funziona esattamente come externalplayer (che disabilita gli input utente come il telecomando) e che quando il frontend di VDR non serve più spenga XINE e ritorni ad XBMC

Una semi-porcata che mi è venuta in mente sarebbe fare partire subito XBMC e poi nello stesso script che lo avvia mettere lo start di XINE, in questo modo si avrebbe XBMC all'avvio e uscendo da XBMC partirebbe VDR normalmente, dal quale poi sarebbe possibile richiamare XBMC, ma mi piacerebbe capire se si può fare qualcosa di più elegante...

Idee?
Ciao alez
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Fare partire prima XBMC e poi VDR

Messaggio da alez »

Dunque, per ora sto proseguendo per la strada meno elegante :mrgreen:

La macchina è una Ubuntu minimal che parte con autologin dell'utente root, il quale ha in bash_profile lo startx.

Il .xinitrc è così composto:

Codice: Seleziona tutto

xhost + localhost
/usr/local/bin/svdrpsend.pl -d 127.0.0.1 -p 2001 remo off
/scripts/start_xbmc.sh
/usr/local/bin/svdrpsend.pl -d 127.0.0.1 -p 2001 remo on 
/scripts/start_xine.sh 
In teoria dovrebbe funzionare così:
0- VDR già in esecuzione e in ascolto su lirc
1- vengono disabilitati gli input di VDR (in modo che quando uso il telecomando con XBMC non vada ad interferire)
2- lancio XBMC
3- all'uscita di XBMC vengono riabilitati gli input a VDR
4- viene avviato xine, per mostrare l'output di VDR

da ora in avanti, se si vuole rivedere XBMC è sufficiente richiamare dal menu la voce di externalplayer, che si occupa anche di sospendere nuovamente gli input a VDR e di darli in esclusiva a XBMC.

Se lo startx viene fatto da terminale no problem, svdrpsend funziona correttamente ma se viene avviato dallo script da boot funziona tutto tranne svdrpsend... non riesco a capire cosa ci sia che non va...
Ciao alez
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Fare partire prima XBMC e poi VDR

Messaggio da alez »

Ok ce l'ho fatta :ok:

Ho scritto questo semplice scriptino che controlla che vdr sia in esecuzione ed attende 10 secondi:

salvato in /scripts/wait_until_it_is_running.sh

Codice: Seleziona tutto

#!/bin/bash

PROGRAM=runvdr

APPCHK=0
while [  $APPCHK -lt "2" ]; do
APPCHK=$(ps aux | grep -c $PROGRAM)
#echo "APPCHK, $PROGRAM is not running\n"
sleep 1
done
sleep 10
#echo "$APPCHK, PROGRAM is running\n"

Questo mi serve per evitare che il comando svdrpsend venga inviato prima che VDR sia in ascolto e per evitare che il remo off venga perso nel nulla

poi ho modificato lo start_xbmc.sh mettendo xbmc in standalone mode, prima xbmc una volta eseguito restituiva il prompt quindi veniva eseguito il passo successivo dello script, ossia remo on, riabilitando di fatto il telecomando a VDR:

/scripts/start_xbmc.sh

Codice: Seleziona tutto

#!/bin/bash
DISPLAY=:0.0
xhost +
/usr/bin/xbmc --standalone
ed infine .xinitrc è stato modificato come segue:

Codice: Seleziona tutto

xhost + localhost
/scripts/wait_until_it_is_running.sh
/usr/local/bin/svdrpsend.pl -d 127.0.0.1 -p 2001 remo off
/scripts/start_xbmc.sh
/usr/local/bin/svdrpsend.pl -d 127.0.0.1 -p 2001 remo on
/scripts/start_xine.sh
Ciao alez
Avatar utente
Maggiolino
Messaggi: 83
Iscritto il: 17 gen 2008, 03:35

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da Maggiolino »

Anch'io ho fatto per un mio amico una cosa simile, solo che ho dovuto abbandonare externalplayer perchè bloccava le registrazioni, mi rimaneva impegnato il device dvb, senza contare che usando xine non sono riuscito a risolvere la grana del remote on/off, quando uscivo da xbmc mi eseguiva gli ultimi comandi dati tramite tecomando (anche in standalone).
Per risolvere ho scopiazzato a piene mani da yavdr usando openbox, dbus2vdr e upstart che ha il grosso vantaggio di riavviare xine qualora dovesse andare in crash, senza contare che non hai bisogno di scriptini di controllo.
Comunque, per la grana del telecomando, usando vdr-sxfe con xineliboutput il problema non sussiste perchè gli passi il parametro per il telecomando senza impostarlo sul vdr. Purtroppo mi andava in crash su Rai Hd e così ho dovuto usare xine e upstart :D
L'autologin l'ho abbandonato, perchè il bash_profile mi creava dei problemi quando mi collegavo in ssh, a volte andava in crash.
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da alez »

Grazie, penso che anche io dovrò ricorrere a qualche soluzione YaVDR, ho scoperto che purtroppo se lancio da rc.local o autologin vdr non mi funziona XBMC via externalplayer, mentre funziona se lancio vdr a mano... non riesco proprio a capire il perchè.

Hai qualche tutorial sotto mano per replicare la tua configurazione?

Comunque, quello fatto finora è qui disponibile:

http://al3z77.altervista.org/dokuwiki/d ... untu_10.04

Edit: facendo riferimento a questo post di zio sul sif (richiede registrazione e login)

http://forum.sifteam.eu/722095-post38.html

sto riuscendo a fare qualcosa di meglio :P ora continuo a studiare...
Ciao alez
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da alez »

In questo modo funziona tutto, XBMC parte subito, il remote si disabilita e XBMC parte tramite externalplayer, sarà da verificare se rimane bloccato il tuner, per ora non ho nessun tuner ma prossimamente metto una Sky Digital Key dato che non ha di slot PCI e mi servirà solo il DVB-T:

http://al3z77.altervista.org/dokuwiki/d ... g_senza_wm
Ciao alez
Avatar utente
Maggiolino
Messaggi: 83
Iscritto il: 17 gen 2008, 03:35

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da Maggiolino »

alez ha scritto: Hai qualche tutorial sotto mano per replicare la tua configurazione?
Tutorial no perchè ho guardato come era implementato su yavdr e l'ho adattato alle mie esigenze, domani, tempo permettendo, ti posto gli script che utilizzo e come ho fatto per per far funzionare il tutto.
Ciao
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da ragno »

Rimango in attesa degli script :)

@alez: invece di aspettare 10 secondi, puoi utilizzare questo per testare se vdr risponde sulla porta di svdr (preso pari pari da yavdr)

Codice: Seleziona tutto

while  ! netcat -z localhost <porta svdr>; do sleep 1; done;
ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.

E quando penso che sia finita,
è proprio allora che comincia la salita.
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da alez »

Grazie Ragno, sapevo che era migliorabile, ora i tempi di attesa miglioreranno sensibilmente ;)
Ciao alez
Avatar utente
Maggiolino
Messaggi: 83
Iscritto il: 17 gen 2008, 03:35

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da Maggiolino »

Allora, premetto che uso Debian wheezy che non implementa upstart nativamente, quindi i mie script vengono avviati la prima volta da rc.local.
Se usi ubuntu invece non dovresti avere problemi nel farli partire in automatico al boot.
Sono partito anch'io da una distro minimale ( con deboostrap) per poi aggiungere quello che serviva.
Per vdr non ho usato la versione fornita con debian ma ho compilato il tutto da zero (1.7.28) e lasciandolo nella directory /VDR.
Per Xine e xbmc invece ho usato le versioni fornite da Debian, installando i pacchetti con apt-get per evitare l'installazione di ciò che non mi interessava.

Questo è l'elenco per xine, se mancano alcuni pacchetti (dev) non riesci a compilare o non ti parte xine per la mancanza dei plugin di input per vdr:
libxine2
libxine2-bin
libxine2-dev
libxine2-doc
libxine2-ffmpeg
libxine2-misc-plugins
libxine2-plugins
libxine2-vdr
libxine2-x
libxine2-xvdr
xine-ui

Come dicevo servono upstart, openbox e dbus2vdr e menuorg, upstart e openbox li ho ovviamente installati tramite apt-get.

Dbus2vdr lo scarichi con git:

Codice: Seleziona tutto

git clone https://github.com/flensrocker/vdr-plugin-dbus2vdr.git
lo script vdr-dbus-send.sh lo trovi nella dir del plugin, lo devi copiare in /usr/bin rinominandolo in vdr-dbus-send

menuorg:
http://projects.vdr-developer.org/attac ... 4.5.tar.gz

xine-plugins
http://home.vrweb.de/~rnissl/vdr-xine-0.9.4.tgz

patch per compilare xine:
http://patchwork.linuxtv.org/patch/12937/raw/

xineliboutput come da wiki:

Codice: Seleziona tutto

cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput
Questi sono gli script che uso, la configurazione di vdr è sotto /etc/vdr.

/etc/vdr/vdr.conf

Codice: Seleziona tutto

DAEMON=/VDR/vdr
VDR_LANG=it_IT.UTF-8
VIDEO_DIR="/mnt/dati/video"
CFG_DIR="/etc/vdr"
VDRSHUTDOWN="/etc/vdr/vdrshutdown"
EPG_FILE="/etc/vdr/epg.data"
SVDRP_PORT="6419"
OPTIONS=" --localedir=/VDR/locale"
LIRC="--lirc=/var/run/lirc/lircd"
LIB_PLUGINS="/VDR/PLUGINS/lib"
PLUGINS="-Pxine -Pmenuorg -Pdbus2vdr -P'xineliboutput --local=none --primary --remote=37890'"
/etc/vdr/plugins/menuorg.xml

Codice: Seleziona tutto


!--

This is the config file for the Menuorg plug-in.


-->
<menus>

    <system name="Schedule" />
    <system name="Channels" />
    <menu name="Timer">
        <system name="Timers" />
        <plugin name="epgsearchonly" />
        <plugin name="quickepgsearch" />
        <plugin name="conflictcheckonly" />
    </menu>
    <menu name="Video">
        <system name="Recordings" />
        <plugin name="burn" />
        <plugin name="dvdswitch" />
        <plugin name="dvdselect" />
        <plugin name="dvd" />
        <plugin name="xineliboutput" />
    </menu>

    <menu name="XBOX MEDIA CENTER">
         
        
          <command name="XBMC" execute="/Script/menuorg-appswitcher standalone=yes app=xbmc &> /dev/null " />
         
    </menu>
                
    <menu name="Sistema">
         <menu name="Comandi">
               <command name="Rimozione unità USB in sicurezza" confirm="yes" execute="/usr/bin/halevt-umount -ra &> /dev/null" />
                <command name="Aggiorna elenco registrazioni VDR" execute="vdr-dbus-send /Recording recording.Update &> /dev/null " />
                <command name="Elenco Comandi"  execute="/Script/echo_comandi.sh" />
                <command name="Riavvia VDR" confirm="yes" execute="restart vdr" />
                <command name="Riavvia sistema" confirm="yes" execute="/sbin/reboot" />
                <command name="Arresta sistema" execute="/sbin/shutdown -h now > /dev/null &  " />
          </menu>
         <system name="Setup" />
         <plugin name="femon" />
         <plugin name="filebrowser" />
         <plugin name="avolctl" />
         <plugin name="suspendoutput" />
         <plugin name="recstatus" />
     </menu>
</menus>
Ovviamente puoi togliere quello che non interessa, ma non dà problemi, le voci dei plugins vengono visualizate solo se presenti.


/Script/menuorg-appswitcher

Codice: Seleziona tutto

#!/bin/bash

# switch applications from vdr menu

for ARG in $@ ; do
   KEY="${ARG/=*}"
   VALUE="${ARG/*=}"

   case $KEY in
        standalone)
                 STANDALONE=$VALUE
                 ;;
        window)
                WINDOW=$VALUE
                ;;
        app)
                 APP=$VALUE
                 ;;
        display)
                XDISPLAY=$VALUE
                ;;
        *)
                 echo "unknown argument: $KEY"
                 ;;
    esac
done

# finished parsing arguments

STOP="/sbin/initctl stop --no-wait"

# minimum required arguments
if [ -z $STANDALONE ] || [ -z $APP ]; then
        echo "minimum required argument (standalone, app) not given, exit now ..."
        exit 0
fi

if [ ! -z $XDISPLAY ]; then
   OPTIONS="DISPLAY=:$XDISPLAY"
   export DISPLAY=:$XDISPLAY
else
   OPTIONS="DISPLAY=:1"
   export DISPLAY=:1
fi

if [ "x$STANDALONE" = "xyes" ]; then
    $STOP vdr-frontend &> /dev/null
    /sbin/initctl start --no-wait toggle JOBNAME=$APP OPTIONS=$OPTIONS STANDALONE=yes &> /dev/null
else
    /sbin/initctl start --no-wait toggle JOBNAME=$APP OPTIONS=$OPTIONS   &> /dev/null
fi

Questa è la parte di upstart, tutti i file sono sotto /etc/init

/etc/init/vdr.conf

Codice: Seleziona tutto

# Starts the vdr, with config and installed plugins

description     "VDR upstart script"
author          " "

start on ( (local-filesystems and started udev-finish and stopped networking) or \
           stopped vdr-exit-other or \
           resume )
stop on runlevel [!2345]

post-start script
LANG=C /sbin/status openbox | grep -q process && /sbin/initctl emit vdr-frontend-restart || /bin/true
end script

kill timeout 15
normal exit 0
nice -10

script
# load default values and overrides from /etc/default/vdr

. /etc/vdr/vdr.conf

# set language
LANG=it_IT.UTF-8
LC_ALL=it_IT.UTF-8
export LANG LC_ALL

eval  $DAEMON -c $CFG_DIR -L $LIB_PLUGINS $PLUGINS -v $VIDEO_DIR $LIRC -E $EPG_FILE -s $VDRSHUTDOWN $OPTIONS 2>&1 >/tmp/vdr.log

end script
/etc/init/vdr-frontend.conf

Codice: Seleziona tutto


# vdr-frontend - Starts xine or vdr-sxfe
#

description     "vdr-frontend"
author          " "

start on vdr or  vdr-frontend-restart or resume
stop on stopping vdr or suspend or stopping openbox

nice -10
respawn

pre-start script

if [ -e /tmp/.standalone ]; then
   vdr-dbus-send /Remote remote.Disable ||:
   exit 1
fi
end script

env HOME=/root
#env XINE_BUFFER_LOG=1
env USE_AUTOCROP=0
export USE_AUTOCROP

script

export DISPLAY=:1

#ASPECT_RATIO="anamorphic"
GEOMETRY=`xrandr | grep "\*" | cut -d" " -f4`

test -f /etc/default/xine && . /etc/default/xine
XINEOPTS="-G $GEOMETRY -A alsa -V xv -f  --post vdr --post vdr_video --post tvtime  --post vdr_audio  --no-gui --no-logo --no-splash  -pq"

if [ -n "$ASPECT_RATIO" ]; then
  XINEOPTS="$XINEOPTS --aspect-ratio=$ASPECT_RATIO"
fi

if [ "$USE_AUTOCROP" = "1" ]; then
  XINEOPTS="$XINEOPTS --post autocrop:enable_autodetect=1,enable_subs_detect=1,soft_start=1,stabilize=1"
fi

while [ ! -e /tmp/vdr-xine/stream ] ; do sleep 0.1 ; done
while ! grep -q "^ 0" /proc/asound/cards ; do sleep 1 ; done

exec start-stop-daemon --start --exec /usr/bin/xine --user root -c root  -- $XINEOPTS "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes" 2>&1 > /tmp/vdr-frontend.log

end script
ovviamente questo è per xine, se vuoi usare vdr-sxfe devi sostituire la parte interessata

/etc/init/xbmc.conf

Codice: Seleziona tutto

description     "XBMC Daemon"
author          " "

env DISPLAY=:1
export DISPLAY


pre-start script
vdr-dbus-send /Remote remote.Disable ||:
if [ ! -z $STANDALONE ] ; then
  touch /tmp/.standalone
fi
end script

post-stop script
/bin/rm -f /tmp/.standalone
vdr-dbus-send  /Remote remote.Enable ||:
/sbin/initctl emit --no-wait vdr-frontend-restart
end script

script
eval ulimit -c unlimited

su -c "python /usr/share/xbmc/FEH.py --standalone --lircdev /var/run/lirc/lircd" root
RET=$?
if [ $RET -ne 0 ]; then
  exit $RET
fi

exec start-stop-daemon --start --exec /usr/lib/xbmc/xbmc.bin --user root --chuid root \
-- --standalone --lircdev /var/run/lirc/lircd
end script
/etc/init/xbmc-exit.conf

Codice: Seleziona tutto


start on stopped xbmc

task
script

logger -t "XBMC" "XBMC exit with exit status $EXIT_STATUS, $EXIT_SIGNAL, ENV: $(env) ."
case $EXIT_STATUS in
    64|66)

        vdr-dbus-send /Remote remote.HitKey string:'Power' || /bin/true

        ;;
    *)
#        signal-event reset-display-rate
        initctl emit vdr-frontend-restart
        ;;
esac

end script
/etc/init/toggle.conf

Codice: Seleziona tutto

description     "toggle job $JOBNAME"
author          "Holger Reichelt <holgerr@yavdr.de>"

script
stop $JOBNAME || start $JOBNAME $OPTIONS STANDALONE=$STANDALONE
end script

/etc/init/openbox.conf

Codice: Seleziona tutto

start on (local-filesystems )
stop on runlevel [!2345]

respawn
env DISPLAY=:1
env XORGCONFIG=/etc/X11/xorg.conf
env xorg_driver

script
# D-bus
if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
       eval `dbus-launch --sh-syntax --exit-with-session`
fi

if [ -e /etc/default/locale ]; then
. /etc/default/locale
fi

exec xinit /usr/bin/openbox --config-file /etc/X11/openbox/rc.xml --startup "/sbin/initctl emit --no-wait openbox-started" -- :1 vt7
end script

/etc/init/openbox-tools.conf

Codice: Seleziona tutto

start on openbox-started

task

env DISPLAY=:1
export DISPLAY

script
LANG=C /sbin/status vdr | grep -q process && /sbin/initctl emit vdr-frontend-restart || /bin/true

xset -dpms s off -display :1
if [ -e /etc/default/locale ] ; then
. /etc/default/locale
fi

if [ ! "$LANG" = "" ]; then
   setxkbmap ${LANG/_*} ||:
else
   setxkbmap ||:
fi
end script

In teoria non dovrei aver dimenticato nulla, ma non si può mai sapere :D.

Comunque per avviare il tutto io lancio da rc.local in sequenza start openbox, start vdr e tutto parte.
Per avviare subito xbmc devo ancora dargli un'occhiata, solo che ora è tardi e domani sarò cotto.
Spero che possa esserti utile.
Ciao
Ultima modifica di Maggiolino il 01 set 2012, 04:45, modificato 1 volta in totale.
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da alez »

Cavoli grazie per questo prezioso contributo!

C'è un sacco di roba da studiare!
Ciao alez
davidea
Messaggi: 1279
Iscritto il: 16 ago 2009, 13:32
Località: Palermo
Contatta:

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da davidea »

Maggiolino ha scritto:Allora, premetto che uso Debian wheezy che non implementa upstart nativamente, quindi i mie script vengono avviati la prima volta da rc.local.
Se usi ubuntu invece non dovresti avere problemi nel farli partire in automatico al boot.
Sono partito anch'io da una distro minimale ( con deboostrap) per poi aggiungere quello che serviva.
Per vdr non ho usato la versione fornita con debian ma ho compilato il tutto da zero (1.7.28) e lasciandolo nella directory /VDR.
Per Xine e xbmc invece ho usato le versioni fornite da Debian, installando i pacchetti con apt-get per evitare l'installazione di ciò che non mi interessava.
..
.
.
.
.
.
Ciao

.azzo ti se fatto un mazzo quanto una casa!!!! :shock:

bravo e grazie per il lavoro che hai fatto!!!! :ok:
Avatar utente
Maggiolino
Messaggi: 83
Iscritto il: 17 gen 2008, 03:35

Re: [RISOLTO] Fare partire prima XBMC e poi VDR

Messaggio da Maggiolino »

Vi ringrazio ma ho solo scopiazzato e modificato qualcosa, niente di trascendentale.
Il fatto è che dovevo fare un mediacenter per un mio amico che non è pratico di computer e volevo che funzionasse senza troppi problemi.
Yavdr era un ottimo punto di partenza, ma dopo averla provata per qualche mese l'ho abbandonata perchè troppo customizzata e non mi permetteva di
aggiornarla con facilità, senza contare i litigi avuti con il telecomando e xbmc ( meteo che non andava, alcuni filmati in HD completamente fuori sincronia) così visto che la mia debian era più stabile ho preso quello che reputavo valido per adattarlo alle mie esigenze.
Ad esempio un problema che non riuscivo a risolvere agevolmente in automatico era rilanciare xine quando usciva perchè lo stream era corrotto ( sui canali terrestri a volte capita). In questo modo funziona egregiamente.
Comunque per le situazioni di emergenza (blocco di xbmc e altro) ho anche aggiunto alcuni comandi tramite irexec, così posso far ripartire i task o riavviare il pc senza far alzare il mio amico dal divano.
Aggiungo gli script:

/etc/lirc/lircrc

Codice: Seleziona tutto

begin
    prog = irexec
    button = KEY_MACRO
    button = KEY_MACRO
    button = KEY_MACRO
    button = KEY_ENTER
    config = /Script/restart.sh

end

begin
    prog = irexec
    button = KEY_MACRO
    button = KEY_MACRO
    button = KEY_MACRO
    button = KEY_BACK

    config = reboot

end

/Script/restart.sh

Codice: Seleziona tutto



#!/bin/bash


if $(status xbmc |grep -q process ) ; then
stop  xbmc
exit
fi



if $(status vdr-frontend |grep -q process) ; then
vdr-dbus-send.sh /Remote remote.HitKey string:'1' &> /dev/null
stop vdr-frontend  &> /dev/null
sleep 1
start vdr-frontend  &> /dev/null
exit
fi


if ! $(status xbmc |grep -q process ) && ! $(status vdr-frontend |grep -q process) &&  $(status vdr |grep -q process) ; then

restart openbox  &> /dev/null
exit
fi

Rispondi