2
我正在寫一個廚師食譜,在此我需要執行一個操作(運行一批),只有當一個服務不工作。 我用這個片段:如果Windows服務正在運行,我可以使用衛兵給廚師嗎?
batch 'run commnad' do
cwd target_path + '/bin/win64'
code 'command to be executed'
not_if '::Win32::Service.exists?("Service name")'
end
但它似乎並不工作。看到this問題後,我改變了使用if子句代替保護和正常工作的過程:
if !::Win32::Service.exists?("Service name") then
batch 'Install zabbix agent' do
cwd target_path + '/bin/win64'
code 'command to be executed'
end
end
但這不應該是,我的理解,正確的方法來管理這一點,所以我想知道:爲什麼警衛不能正常工作?
謝謝, 米歇爾。
的{ }解決了這個問題。我沒有想到這一點。謝謝! – Mikyjpeg
如果你想要做更多的Ruby-ish你也可以附加一個條件的批量資源調用,即 '批次'運行命令'做 ... 除非<邏輯禁用服務> – JackChance