Upstart не бачить мого нового сценарію


27

Я додав новий скрипт до /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

Я спробував запустити, initctl listі моя робота з minecraft не вказана. Я спробував бігати, initctl reload-configurationі це не має ніякого значення.

Інші завдання, перелічені за initctl listпринципом роботи, із запуском, зупинкою та перезапуском.

Чому не почати бачити мій новий сценарій?



Це може бути дурним питанням, але ... не повинен бути ваш сценарій /etc/init.d/?
Волфер

@вісно дякую, але я це вже прочитав, і у мене все ще є проблема.
Jasarien

@Вольфер, згідно з керівництвом про початок роботи, говорить: "Коли /etc/initбудете щасливі, помістіть файли, і тепер ви готові перезавантажуватись та використовувати перезапуск".
Jasarien

Я намагався відтворити проблему, але не мав успіху. Я копіюю вставлений ваш код у /etc/init/minecraft.conf і видав sudo start minecraftбез проблем. Ось вміст файлу журналу ~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft startedЧи можете ви надати більш детальну інформацію про використовувану версію Ubuntu та будь-яку корисну інформацію з syslog?
Горан Мішкович

Відповіді:


12

Перевірте початкові журнали (він є /var/log/syslog) під час перезавантаження конфігурації за допомогою initctl reload-configuration. Якщо є синтаксична помилка, вона з’явиться там. Тому зазвичай ви не можете використовувати нову конфігурацію на початку.


11

Простий спосіб перевірити синтаксис сценарію - це наступна команда:

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

Я виявив, що навіть при дійсному файлі Upstart, якщо файл не існував при останньому завантаженні сервера, я повинен перезавантажити сервер, щоб Upstart побачив файл.


9

Я відчуваю себе німим німим ... Але ось це:

Я пропустив строфу "кінцевого сценарію" з самого кінця сценарію на початку ...

post-start script
   echo "minecraft started"

повинно було

post-start script
   echo "minecraft started"
end script

Я не впевнений, чому це працювало для @schkovich end script, хоча ...


2
Тому що я додав кінцеву строфу сценарію. Вбудований (розум) автоматичний поповнення коду. :(
Горан Мішкович

Я потрапив у ту ж проблему, але нахабно, нічого не з'являється в / var / log та initctl reload-конфігурації - вербоза мовчить.
Ніл Макгілл

4

У моєму випадку це було порожнє authorполе, наприклад:

author ""

Це спрацювало лише після додавання чогось у цитати.

# initctl reload-configuration

також кидав /etc/init/servicename.conf:2: Expected token у syslog замість stdout . Занадто зайнятий, щоб подати звіт про помилку для вмираючого пакету.


3

Можливо, це не стосується конкретно, але варто згадати: Якщо ви редагуєте конфігураційний файл Upstart для запущеної служби, запущена restartНЕ перезавантажує конфігурацію. Вам потрібно запуститись stopі startщоб нові зміни набрали чинності.

http://upstart.ubuntu.com/cookbook/#restart

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.