Как запустить приложение во время загрузки или в качестве службы

Для того, чтобы иметь возможность запустить мое приложение во время загрузки, я следовал инструкции Upstart.

Я создал файл /etc/init/poolparty.conf, в котором я определил следующее:

# poolparty - poolparty job file

# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn

# When to start the service
start on runlevel [2345]

# When to stop the service
stop on runlevel [016]

# Automatically restart process if crashed
respawn

# Essentially lets upstart know the process will detach itself to the background
expect fork

# Run before process
pre-start script
    [ -d /var/run/poolparty ] || mkdir -p /var/run/poolparty
    echo "starting Poolparty"
end script

# Start the process
exec /opt/poolparty/bin/poolparty start

Это приложение, которое требует запуска сети, запуска многопользовательского режима. В любом случае, все, что нужно машине, чтобы начать сначала, должно быть там. Его можно запустить в конце процесса загрузки.

Однако, когда я перезагружаюсь, ничего не происходит.

Что еще мне нужно сделать, чтобы начать? Кто-то может помочь?

Когда я печатаю service poolparty start, я либо получаю, что служба уже запущена, либо ничего. В любом случае это не работает, я проверил это.

Так что, если бы кто-нибудь мог направить меня сюда, было бы здорово. Я также хотел бы проверить журнал.

Кстати, /opt/poolparty/bin/poolparty это исполняемый скрипт, который устанавливает вещи и вызывает Java-приложение. Он использует jsvc64 для запуска Java-приложения на основе Tomcat.

0
задан 5 October 2015 в 21:47

1 ответ

Поскольку Вы говорите, что это требует сети, и Вы создаете новый каталог, таким образом, этому нужна локальная файловая система также .so, необходимо использовать

start on (local-filesystems and net-device-up IFACE!=lo)

или

start on (local-filesystem and started networking)

вместо

start on runlevel [2345]

и можно попробовать

if [ ! -e /var/run/poolparty ]; then
     /bin/mkdir  /var/run/poolparty
   fi

вместо

  [ -d /var/run/poolparty ] || mkdir -p /var/run/poolparty
        echo "starting Poolparty"

предложение: посмотрите, что выскочка регистрируется под /var/log/upstart это поможет Вам, где Вы отсутствуете. и также проверьте синтаксическую ошибку init команды использования сценария:

init-checkconf -d /etc/init/poolparty.conf  

и для лучшего понимания новомодного сценария посмотрите Выскочку поваренная книга Ubuntu

1
ответ дан 6 October 2015 в 07:47
  • 1
    Я только что протестировал шаг 1 и 2. Повторно подключенный гарнитура Bluetooth и это работали на меня. Так никакая потребность в pavucontrol. – Murat Gürsu 13 November 2017 в 04:55

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

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