Правильный способ установки пользовательской службы выскочки

48

Я использую upstart для сервисов на своих серверах. Написание файла conf и размещение его в /etc/init достаточно просто, но это, похоже, не полностью устанавливается. Во-первых, service --status-all не перечисляет мою новую услугу. Я проверил, и если я сделаю ссылку в /etc/init.d до /lib/init/ubstart-job , она появится в статусе. Но делать это вручную заставляет меня думать, что я не делаю это правильно, и могут быть другие шаги настройки, которые не выполняются.

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

    
задан edA-qa mort-ora-y 24.05.2013 в 08:48
источник

4 ответа

42

Когда вы сначала копируете новый файл conf в папку / etc / init, вам необходимо позвонить:

initctl reload-configuration

При этом ваш выскочка должна быть правильно зарегистрирована.

    
ответ дан tombert 31.05.2013 в 23:35
18

Ознакомьтесь с руководством по обслуживанию:

  

service --status-all запускает все сценарии инициализации в алфавитном порядке со статусной командой. Эта опция разрешает только статус для sysvinit-заданий, задания upstart могут быть запрошены аналогичным образом с помощью списка initctl.

(выделено курсивом)

Вот почему добавление его в /etc/init.d (где находятся вакансии sysvinit) заработало. Итак: попробуйте запустить список initctl :).

    
ответ дан Kyle 24.05.2013 в 17:40
9

Друг, убедитесь, что вы выполняете следующие шаги при добавлении / создании новой службы в ubuntu.

  1. Создайте файл службы в /etc/init.d/<service name>
  2. chmod 700 /etc/init.d/<service name>
  3. update-rc.d <service name> defaults
  4. update-rc.d <service name> enable

теперь вы увидите сервис в

service --status-all
    
ответ дан Suyash Jain 12.09.2014 в 18:16
0

Я обнаружил, что ошибка в файле .conf может сделать работу не распознаваемой для initctl. например, с линией setuid в версии Upstart версии 1.3 или ранее.

    
ответ дан jcomeau_ictx 09.03.2015 в 22:51