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