Linux
使用廚師時服務未啟動
我編寫了一個腳本,我將其作為服務觸發。當我打電話時
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