Почему мой сценарий работает при отсутствии запуске с консоли, но работе при запуске через выскочку?

Я запускаю Ubuntu 12.04. Вот то, что я пытаюсь сделать:

Я скопировал и адаптировал сценарий оболочки отсюда: http://yatse.leetzone.org/redmine/boards/2/topics/2088. Это слушает порт UDP 9 для пакетов Следа на LAN. Когда это получает пакет, это должно запустить xbmc. Вот сценарий/home/myusername/.xbmc/autostarter:

#!/bin/bash
UDP_PORT=9          # Change this if you need to run this on a different port

START_PHRASE="E.....@"    
START_PHRASE_ESCAPED="E\.\.\.\.\.@"    

# The following block checks if the user running this script has the required      privileges to listen on the port specified above
WHO=`whoami`
if [ "$WHO" != "root" ]; then
     echo "Cannot start unless running as root." >> /var/log/xbmc-starter.log
  exit 1
fi

echo "Listening on port $UDP_PORT for start command" >> /var/log/xbmc-starter.log

while [ true ]; do
     # Wait for a packet to come in
     LISTEN=`tcpdump "udp port $UDP_PORT" -A -c 1 2>&1 | grep -o    "$START_PHRASE_ESCAPED"`
     # Make sure that we received the right command
     if [ "$LISTEN" = "$START_PHRASE" ]; then
        echo "Starting XBMC" >> /var/log/xbmc-starter.log
        /usr/bin/xbmc 
        echo "test log after command" >> /var/log/xbmc-starter.log
     fi
     # Sleep, to be nice, for unwanted rogue processes writing to our port
     sleep 1
done

Когда я запускаю этот скрипт из командной строки с sudo и отправляю пакет WOL, это работает и запускает xbmc.

sudo ./autostarter

Вывод журнала:

Listening on port 9 for start command
Starting XBMC
test log after command

Но когда я выполняю его из новомодного сценария, это создает тот же вывод журнала, но не запускает xbmc. Вот мой новомодный сценарий xbmc-starter.conf:

# Starts a listener that runs the xbmc start script when a WOL package is received
description     "start xbmc wol listener script"
# runlevels
start on runlevel [2345]
stop on runlevel [!2345]
exec /home/myusername/.xbmc/autostarter

И журнал произвел:

Listening on port 9 for start command
Starting XBMC
test log after command

Почему это не запускает XBMC?

1
задан 23 October 2014 в 00:59

2 ответа

Возможно, добавление env DISPLAY=:0 к Новомодному заданию помогло бы? Я думаю потребности XBMC быть в состоянии знать, какой дисплей использовать, Вы знаете?

0
ответ дан 6 October 2019 в 22:37

Я сделаю снимок, так как никто больше не предложил ответ.

Попытка, изменяющая Ваше условие запуска на start on started tty1

, Мое понимание init систем - то, что они счастливо запустят программы в странные времена, если Вы спросите их к. Выяснение запуститься на уровнях выполнения могло означать в начале тех уровней выполнения, прежде чем что-либо еще запустилось. Как, прежде чем вещи как любая часть файловой системы были смонтированы, и конечно прежде чем минимальные сети будут доступны.

запускаются на запущенном tty1, будет ожидать, пока первый терминал не запущен прежде, чем запустить программу, которая является в основном тем же временем, когда Вы были бы в состоянии выполнять/тестировать вещи вручную. Таким образом, Ваша программа запускает позже в процессе начальной загрузки, но необходимо получить более последовательные результаты.

0
ответ дан 6 October 2019 в 22:37

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

Похожие вопросы: