Upstart скрипт не запускается

Ubuntu 10.04

Я создал этот скрипт выскочки (/etc/init/pure-ftpd.conf):

# pure-ftpd - FTP server

description "Pure-FTPd server"

start on filesystem
stop on runlevel S

respawn
respawn limit 10 5
pid file /var/run/pure-ftpd.pid
console output

pre-start script
    test -x /usr/local/sbin/pure-ftpd || { stop; exit 0; }
end script

exec /usr/local/sbin/pure-ftpd --maxclientsnumber 2 --maxclientsperip 10 --prohibitdotfileswrite --prohibitdotfilesread --noanonymous --chrooteveryone --dontresolve --nochmod --pidfile /var/run/pure-ftpd.pid

Но...

# start pure-ftpd
start: Unknown job: pure-ftpd

а также

# service pure-ftpd start
start: Unknown job: pure-ftpd


В чем проблема?
Нужно ли делать что-то еще?
Нужно ли создавать один скрипт в /etc/init.d?

6 ответов

Решение

Обычно это означает, что у вас есть ошибка в .conf файл - например, я не уверен, pid раздел поддерживается в 10.04, stop не может быть использован в сценарии и т. д.

Я бы попробовал запустить файл с нуля (только с start, stop и т. д.), а затем медленно наращивать его, добавляя все больше и больше строк и тестируя его с помощью start pure-ftpd,

Например:

# cat pure-ftpd.conf 
start on filesystem
stop on runlevel S

respawn
respawn limit 10 5

# start pure-ftpd
pure-ftpd start/running

# cat pure-ftpd.conf 
start on filesystem
stop on runlevel S

respawn
respawn limit 10 5
pid file /var/run/pure-ftpd.pid

# start pure-ftpd
start: Unknown job: pure-ftpd

Вы также можете запустить init-checkconf проверить синтаксис

init-checkconf /etc/init/job.conf
File /etc/init/job.conf: syntax ok

Во-первых, вы можете проверить, что ваша работа на самом деле известна как выскочка:

sudo initctl list | grep your_job_name

...где your_job_name это имя вашего сценария выскочка минус .conf расширение.

Если он не найден, попробуйте перезагрузить конфигурацию, а затем повторно проверить:

sudo initctl reload-configuration

# re-check
sudo initctl list | grep your_job_name

Затем попробуйте снова начать свою работу:

sudo start your_job_name

Если вы не входили в систему /var/log/daemon.log или же /var/log/syslog раньше, вы могли бы иметь некоторые сейчас.

Наиболее актуальная ссылка на синтаксис файла задания будет доступна при запуске команды:

man 5 init

в вашей системе. Для Ubuntu 10.04, как вы обнаружили в предыдущем ответе, синтаксис файла pid неверен.

Каждый раз, когда вы получаете сообщение об ошибке "неизвестное задание", полезно проверить журналы (до 11.04, /var/log/daemon.log, 11.04 и выше, все идет в /var/log/syslog)

Вы можете увидеть такую ​​ошибку:

init: /etc/init/test.conf:2: Unknown stanza

В любом случае, я здесь, потому что у меня была та же проблема, но мой синтаксис был на 100% правильным.

После некоторой отладки я обнаружил другую проблему, которая может вызвать эту ошибку "Неизвестная работа":

upstarts использует inotify для отслеживания изменений файла.conf и заданий автоматической установки, это очень круто (для этого вам не нужно что-то вроде update.rc с upstart!), но может быть не идеально, если вы (как и я в этом случае) используете В некоторых программах FTP/SCP GUI для загрузки и редактирования конфигураций на удаленных серверах задание может быть автоматически удалено программой upstart при редактировании файла таким способом.

чтобы исправить просто сделать это (это спасло меня)

touch /etc/init/*

он будет генерировать события inotify, чтобы обновить все выскочки конф.

У меня была такая же проблема в моих контейнерах Ubuntu 14.04 Docker. Как оказалось, образ Ubuntu 14.04 (если не другие) для Docker не поддерживает Upstart так же, как полноценная виртуальная машина.

Чтобы ответить на этот вопрос, почему служба не запускается, это потому, что initctl не является реальной программой Upstart: она отображается в / bin / true.

Чтобы проверить, выполните следующие действия для контейнера Ubuntu 14.04 Docker против Vagrant и против капли DigitalOcean

$ ls -al /sbin/initctl

Вы увидите, что initctl отличается от Docker по сравнению с другими.

Ссылка, которая может помочь вам понять. https://github.com/docker/docker/issues/1024

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