Я написал сценарий, который запускаю как услугу. Когда я звоню service myservice start
служба запускается нормально. Однако, когда та же служба запускается с помощью chef, служба не запускается. Код моей услуги шеф-повара выглядит так
service "myservice" do
supports :status => true, :restart => true, :reload => true
action [ :enable, :start ]
end
Я вызываю сценарий, используя knife bootstrap <ip> -r 'recipe[testservice]'
. Что мне здесь не хватает? Спасибо за помощь!
Скорее всего у вас есть ошибки в вашем /etc/init.d/myservice
сценарий. Когда вы говорите, что ваш сервис поддерживает status
команда, повар будет работать service myservice status
и проверьте код выхода. Если это 0, предполагается, что служба запущена. Ваш сценарий должен завершиться с ненулевым кодом.
Я столкнулся с той же проблемой, на самом деле сервер chef 11 полагается на действие: статус для запуска службы. Следовательно, как и запуск и остановка действия в вашем сценарии, вам также потребуется статус действия, который должен возвращать текущий статус сценария.
Когда Chef запускает службу, он сначала проверяет, запущена ли она уже («/ sbin / service myservice status» в CentOS). Если он определяет, что он уже запущен, он не будет запускать и регистрировать что-либо на более высоком уровне, чем уровень отладки:
https://github.com/opscode/chef/blob/master/lib/chef/provider/service.rb#L87