Выскрипт xbmc не дает звука

Я хочу, чтобы xbmc запускался при загрузке, а также перезагружался при сбое. В настоящее время я автоматически вхожу в систему для пользователя ('public') и имею xbmc в качестве запускаемого приложения. Но если происходит сбой xbmc, он не перезапускается, что проблематично для моей компьютерной неграмотной семьи, если не для меня лично. Так как я привык к /etc/init/ scripts, я следовал этому руководству, создавая следующий скрипт (но с USER=public вместо '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

Он отлично работает в том смысле, что машина загружается в xbmc, но теперь у меня нет звука! И когда я выхожу из xbmc, он напрямую перезагружается, что означает, что я не могу (то есть у меня нет навыков, чтобы знать, как, по крайней мере) проверить настройки звука из Unity.

Советы о том, как заставить звук работать?

1 ответ

Решение

Я нашел обходной путь, который решает проблему для меня, в том смысле, что он:

  1. позволяет мне автозапуск в xbmc
  2. перезапускает xbmc в случае сбоя программы
  3. он полностью функционирует: есть звук и видео работает отлично.

Я решил автоматически запустить Ubuntu для моего "публичного" пользователя "обычным" способом графического интерфейса, выбрав опцию в Unity. Затем я добавил скрипт монитора процессов, чтобы заново запустить программу для себя.

Вот как: Следуя этому ответу, я добавил следующий скрипт в домашний каталог пользователя public, назвав его 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

После выполнения сценария

chmod a+x ~/process_monitor.sh

Я добавил следующую строку в "Запускаемые приложения" для пользователя "public" (доступ к которому осуществляется через Dash или, по крайней мере, в 12.04 вверху справа):

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

Таким образом, теперь я могу автоматически запускаться в xbmc с отличной функциональностью звука и видео, а затем заставить скрипт монитора убедиться, что xbmc возрождается при сбое. Возможно, не самое красивое из решений, но оно работает!

Другие вопросы по тегам