Linux

使用廚師時服務未啟動

  • May 18, 2015

我編寫了一個腳本,我將其作為服務觸發。當我打電話時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 啟動服務時,它首先檢查服務是否已經在執行(CentOS 上的“/sbin/service myservice status”)。如果它確定它已經在執行,它將不會啟動,或者記錄任何高於調試級別的內容:

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

引用自:https://serverfault.com/questions/495969