xbmc scrip upstart não oferece som

1

Eu quero que o xbmc inicie na inicialização, assim como reinicie quando ele falhar. Atualmente, faço login automático para um usuário ('public') e tenho o xbmc como um aplicativo de inicialização. Mas, se o xbmc travar, ele não será reiniciado, o que é problemático para minha família analfabeta em computadores, se não para mim pessoalmente. Como estou acostumado a / etc / init / scripts, eu segui este guia , criando o seguinte script (mas com USER = public em vez de 'xbmc'):

# xbmc-upstart
# starts XBMC on startup by using xinit.
# by default runs as xbmc, to change edit below.
env USER=xbmc

description     "XBMC-barebones-upstart-script"
author          "Matt Filetto"

start on (filesystem and stopped udevtrigger)
stop on runlevel [016]

# tell upstart to respawn the process if abnormal exit
respawn

script
  exec su -c "xinit /usr/bin/xbmc --standalone -- -nocursor :0" $USER
end script

Funciona perfeitamente no sentido de que a máquina inicializa no xbmc, mas agora não tenho som! E quando saio do xbmc, ele é reiniciado diretamente, o que significa que não posso (ou seja, não tenho as habilidades para saber como, pelo menos) verificar as configurações de som do Unity.

Conselhos sobre como fazer o som funcionar?

    
por Nick The Swede 13.09.2014 / 22:25

1 resposta

0

Encontrei uma solução alternativa que resolve o problema para mim, no sentido de que:

  1. permite que eu inicie automaticamente no xbmc
  2. reinicia o xbmc se o programa falhar
  3. está funcionando perfeitamente: há som e o vídeo está funcionando perfeitamente.

O que eu escolhi fazer foi auto-iniciar o Ubuntu em meu usuário 'público', o modo de GUI 'normal', selecionando a opção no Unity. Então, eu adicionei um script de monitor de processo para reaparecer o programa para mim.

Veja como: Seguindo esta resposta , Eu adicionei o seguinte script ao diretório home do usuário 'public', nomeando-o 'process_monitor.sh':

#!/bin/bash

if [[ -z "$1" ]];then
    echo "ERROR: must specify program"
    exit 1
fi

while (( 0 == 0 ));do
    $@ &
    pid='jobs -l | awk '{print $2}''
    wait $pid
done

Depois de tornar o script executável por

chmod a+x ~/process_monitor.sh

Eu adicionei a seguinte linha em "Aplicativos de inicialização" para o usuário "público" (acessado através do Dash ou, no mínimo, 12.04, na barra superior direita):

/bin/bash ~/process_monitor.sh /usr/bin/xbmc

Dessa forma, agora posso iniciar automaticamente no xbmc com a funcionalidade perfeita de som e vídeo e, depois, fazer com que o script do monitor verifique se o xbmc reaparece quando ele falha. Talvez não seja a mais bonita das soluções, mas funciona!

    
por Nick The Swede 22.09.2014 / 22:29