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

Чтобы иметь возможность запускать мое приложение во время загрузки, я следовал инструкции 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Я либо получаю, что служба уже запущена, либо ничего. В любом случае это не работает, я проверил это.

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

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

1 ответ

Решение

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

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-checkconf -d /etc/init/poolparty.conf  

и для лучшего понимания сценария upstart см. кулинарную книгу Ustntu Upstart

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