Como eu gerencio as opções de sessão (som no meu caso) ao iniciar o programa com o xinit?

0

Eu tentei, mas não consegui encontrar informações adequadas sobre o xinit, a fim de entender por que quando inicializo o Unity e inicio um aplicativo (xbmc) está tudo bem, mas quando tento usar um / etc / init script para auto iniciar o mesmo programa, não recebo som. (Eu tenho anteriormente uma pergunta mais geral sobre o meu problema 'sem som' , mas como ainda não recebi nenhuma resposta, estou tentando fazer um trabalho de detetive sozinho.)

Tanto quanto eu posso entender, o script ( aqui na íntegra ) basicamente muda o usuário para USER e então inicia o programa (xbmc):

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

Alguém disposto e capaz de me explicar quais são as minhas possibilidades para controlar o som ao inicializar 'diretamente' em um programa como este? Posso entrar através de um terminal virtual, ssh ou o que você tem, e verificar o que está acontecendo? Todos os conselhos (incluindo como esclarecer melhor a questão, se necessário) foram apreciados.

EDITAR: Eu estou supondo que uma fonte potencial do problema pode ser se o script for executado muito em breve no processo de inicialização, para que o programa seja iniciado antes da placa de som ser inicializada ou algo assim.

Nesse caso, essa parte do script completo pode ser relevante para o meu problema:

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

Mas não sei como verificar se esta pode ser a causa.

    
por Nick The Swede 16.09.2014 / 14:27

2 respostas

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 no meu usuário 'xbmc' da forma 'normal' da GUI 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 'xbmc', 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 'xbmc' (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:24
0

Tente ter algo nos moldes de:

start on stopped rc RUNLEVEL=[2345]
stop on starting rc RUNLEVEL=[016]

Esse é o equivalente aproximado de $ all nos scripts de inicialização do LSB. Se realmente é um problema de encomenda, então isso provavelmente irá corrigir isso.

Mas primeiro, defina o trabalho do xbmc como "manual", depois inicie-o após o término da inicialização para ver se é um problema de ordenação (se você ainda não recebe som, então o início e a parada estão corretos).

    
por CameronNemo 20.09.2014 / 05:37