Выскрипт 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 ответ
Я нашел обходной путь, который решает проблему для меня, в том смысле, что он:
- позволяет мне автозапуск в xbmc
- перезапускает xbmc в случае сбоя программы
- он полностью функционирует: есть звук и видео работает отлично.
Я решил автоматически запустить 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 возрождается при сбое. Возможно, не самое красивое из решений, но оно работает!