7

I've written a script which I trigger as a service. When I call service myservice start the service starts fine. However, when the same service is triggered using chef, the service doesnt start. My chef service code looks like this

service "myservice" do
 supports :status => true, :restart => true, :reload => true
 action [ :enable, :start ]
end

I call the script using knife bootstrap <ip> -r 'recipe[testservice]'. What am I missing here? Thanks for the help!

5
  • Could you say what platform you are running this on? And what chef version? The service provider might have something to do with it.
    – Oin
    Apr 4, 2013 at 15:03
  • I use a Centos box. The chef version is 11.4.0.
    – Jay
    Apr 4, 2013 at 15:46
  • In the output from knife bootstrap do you see a line with: INFO: service[myservice] restarted ?
    – Oin
    Apr 4, 2013 at 15:52
  • I see this service[myservice] action start 172.16.13.251 (up to date)
    – Jay
    Apr 4, 2013 at 16:23
  • for some reason chef thinks my service is running when its not.
    – Jay
    Apr 4, 2013 at 16:23

3 Answers 3

10

Most probably you have some errors in your /etc/init.d/myservice script. When you say that yourservice supports status command, chef will run service myservice status and check the exitcode. If it's 0, it assumes that the service is running. Your script should exit with nonzero code.

0
0

When Chef starts a service it first checks if the service is already running ("/sbin/service myservice status" on CentOS). If it determines that it is running already it won't do the start, or log anything at higher than debug level:

https://github.com/opscode/chef/blob/master/lib/chef/provider/service.rb#L87

0

I was facing the same issue, actually the chef 11 server relies on the action :status to start the service. Hence like action start and stop in your script you would also require action status, Which shall return the current status of the script.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .