Я добавил новый скрипт к /etc/init/, названный minecraft.conf, который содержит скрипт:
start on startup
stop on shutdown
respawn
respawn limit 20 5
script
export HOME="/root"
exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script
post-start script
echo "minecraft started"
Когда я пытаюсь start minecraft, я получаю ошибку: start: Unknown job: minecraft [!d1 ]
Я попытался запустить initctl list, и моя работа по миниатюре не указана. Я попытался запустить initctl reload-configuration, и это не имеет никакого значения.
Другие задания, перечисленные в initctl list, отлично работают с запуском, остановкой и перезагрузкой.
t upstart посмотреть мой новый скрипт?
Простой способ проверить синтаксис скрипта - это следующая команда:
init-checkconf -d /etc/init/service_name.conf
Я обнаружил, что даже при действительном файле Upstart, если файл не существовал при загрузке сервера Последнее, что я должен перезагрузить сервер для Upstart, чтобы увидеть файл.
Проверьте журналы выскочек (в /var/log/syslog), перезагружая конфигурацию с помощью initctl reload-configuration. Если есть синтаксическая ошибка, она появится там. Обычно вы не можете использовать новую конфигурацию выскочки.
В моем случае это было пустое поле author, как это:
author ""
Он работал только после добавления чего-то в цитаты.
# initctl reload-configuration
также был бросая /etc/init/servicename.conf:2: Expected token в syslog вместо stdout. Слишком занят, чтобы записать отчет об ошибке для умирающего пакета.
Возможно, это не относится к этому конкретно, но стоит упомянуть: если вы отредактируете файл конфигурации Upstart для службы, которая запущена, запуск restart НЕ перезагружает конфигурацию. Вы должны запустить stop и start, чтобы новые изменения вступили в силу.
http://upstart.ubuntu.com/cookbook/#restart