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?
Ответы:
Обычно это означает, что у вас есть ошибка в
.conf
файле - например, я не уверен, чтоpid
раздел поддерживается в 10.04,stop
не может использоваться в сценарии и т. Д.Я бы попробовал запустить файл с нуля (только с
start
иstop
т. Д.), А затем медленно создать его, добавляя все больше и больше строк и проверяя его с помощьюstart pure-ftpd
.Например:
источник
pid
строфа была удалена с версии0.5.0 2008-08-12 "One of those deaf-mutes"
. Не используйте это.Вы также можете запустить,
init-checkconf
чтобы проверить синтаксисисточник
start
команду, чтобы она давала более информативное сообщение об ошибке ...Во-первых, вы можете проверить, что ваша работа на самом деле известна как выскочка:
... где
your_job_name
имя вашего сценария upstart минус.conf
расширение.Если он не найден, попробуйте перезагрузить конфигурацию, а затем повторно проверить:
Затем попробуйте снова начать свою работу:
Если вы не входили в систему
/var/log/daemon.log
или/var/log/syslog
раньше, возможно, у вас есть сейчас.источник
Наиболее актуальная ссылка на синтаксис файла задания будет доступна при запуске команды:
в вашей системе. Для Ubuntu 10.04, как вы обнаружили в предыдущем ответе, синтаксис файла pid неверен.
Каждый раз, когда вы получаете сообщение об ошибке «неизвестное задание», полезно проверить журналы (до 11.04, /var/log/daemon.log, 11.04 и выше, все идет в / var / log / syslog)
Вы можете увидеть такую ошибку:
источник
В любом случае, я здесь, потому что у меня была та же проблема, но мой синтаксис был на 100% правильным.
После некоторой отладки я обнаружил другую проблему, которая может вызвать эту ошибку «Неизвестная работа» :
upstarts использует inotify для отслеживания изменений файла .conf и заданий автоматической установки, это очень круто (для этого вам не нужно что-то вроде update.rc с upstart!), но может быть не идеально, если вы (как и я в этом случае) используете В некоторых программах FTP / SCP GUI для загрузки и редактирования конфигураций на удаленных серверах задание может быть автоматически удалено программой upstart при редактировании файла таким способом.
чтобы исправить просто сделать это (это спасло меня)
он будет генерировать события inotify, чтобы обновить все выскочки конф.
источник
У меня была такая же проблема в моих контейнерах Ubuntu 14.04 Docker. Как оказалось, образ Ubuntu 14.04 (если не другие) для Docker не поддерживает Upstart так же, как полноценная виртуальная машина.
Чтобы ответить на этот вопрос, почему служба не запускается, это потому, что initctl не является реальной программой Upstart: она отображается в / bin / true.
Чтобы проверить, выполните следующие действия для контейнера Ubuntu 14.04 Docker против Vagrant и против капли DigitalOcean
Вы увидите, что initctl отличается от Docker по сравнению с другими.
Ссылка, которая может помочь вам понять. Https://github.com/docker/docker/issues/1024
источник