Я попробовал, но не удался найти надлежащую информацию о xinit для понимания отчего получается, что то, когда начальная загрузка в Единицу и затем запускают приложение (xbmc) все, хорошо, но когда я пытаюсь использовать/etc/init сценарий для автоматического запуска той же программы, я не получаю звука. (Я ранее задал более общий вопрос о своей 'никакой звуковой' проблеме, но так как я еще не получил ответа, я пытаюсь сделать некоторое расследование самостоятельно.)
Насколько я могу понять, сценарий (здесь полностью) в основном изменяет пользователя в ПОЛЬЗОВАТЕЛЯ и затем запускает программу (xbmc):
script
exec su -c "xinit /usr/bin/xbmc --standalone -- -nocursor :0" $USER
end script
Кто-либо, который желающий и в состоянии объяснить мне, что мои возможности для управления звуком при начальной загрузке 'непосредственно' в программу как это? Я могу пойти на пути виртуальный терминал, ssh или что имеет Вас и проверяет то, что продолжается? Весь совет (включая то, как далее разъяснить вопрос, в случае необходимости), ценивший.
Править: Я предполагаю, что потенциальный источник проблемы мог бы быть то, если сценарий работает слишком скоро в процессе запуска, так, чтобы программа запустилась, прежде чем звуковая карта инициализируется или что-то.
В этом случае эта часть полного сценария могла бы быть важна для моей проблемы:
start on (filesystem and stopped udevtrigger)
stop on runlevel [016]
Но я не знаю, как проверить, могло ли это быть причиной.
Я нашел обходное решение, которое решает проблему для меня, в том смысле, что это:
То, что я принял решение сделать, должно было автоматически запустить Ubuntu в моего 'xbmc' пользователя 'нормальный' GUI путь путем выбора опции в Единице. Затем я добавил сценарий монитора процесса для перепорождения программы для меня.
Вот то, как: После этого ответа я добавил следующий сценарий к корневому каталогу пользователя 'xbmc', назвав это '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
Я добавил, следующая строка в "Приложениях запуска" для пользователя 'xbmc' (получил доступ через Тире или, в 12,04, по крайней мере, верхняя правая панель):
/bin/bash ~/process_monitor.sh /usr/bin/xbmc
Таким образом, я могу теперь автоматически запустить в xbmc с идеальной звуковой и видео функциональностью и затем иметь сценарий монитора, удостоверяются, что xbmc повторно мечет икру, когда это отказывает. Возможно, не самое красивое из решений, но это работает!
Попытайтесь иметь что-то вроде:
start on stopped rc RUNLEVEL=[2345]
stop on starting rc RUNLEVEL=[016]
, Который является грубым эквивалентом $all в LSB init сценарии. Если это действительно будет проблема упорядочивания, то это, вероятно, зафиксирует его.
, Но сначала, устанавливает xbmc задание на "руководство", тогда запускают его после того, как начальная загрузка закончена, чтобы видеть, является ли это проблема упорядочивания (если Вы все еще не получаете звука тогда, запуск и остановка прекрасны).