2017-02-23 117 views
0
.

. Как проверить, установлена ​​ли служба, и запустить службу, если она установлена, если она установлена, и запустить обслуживание в поваре для оконКак проверить, установлена ​​ли служба, и запустить службу, если она установлена ​​еще при установке, и запустить службу в шеф-поваре для окон.

if service "VigilEntAgent" 
supports :status => false then 
package 'VigilEntAgent' do 
source 'xxx' 
action :install 
end 
else 
service "VigilEntAgent" do 
action :start 
end 

ответ

0

вы можете проверить, если услуга окна установлена ​​с

::Win32::Service.exists?('<service_name>') 

Но если вы используете package ресурс для установки службы, скорее всего, вам просто нужно, чтобы обеспечить правильное имя для package res сходный код. Тот, который вы видите в Панель управления \ Все элементы панели управления \ Программы и функции. Шеф-повар проверяет установленный пакет и не будет пытаться его снова установить.

0

Chef сделан идемпотентным, что вы должны сделать, это:

package 'VigilEntAgent' do 
    source 'xxx' 
    action :install 
end 

windows_service "VigilEntAgent" 
    action :start 
end 

Имя службы должно соответствовать короткое имя службы в диспетчере служб Windows, то один вы будете использовать с NET START, чтобы запустить его из в командной строке IIRC.

windows_service ресурс доступен с поваром 12.

Документация ресурсов здесь: https://docs.chef.io/resources.html

+0

К сожалению, это не так, как службы Windows, как правило, работают, в частности, 'status_command'. Услуги в Windows гораздо более активны, чем на платформах Unix. – coderanger

+0

Я почти уверен, что сделал это в прошлом (для службы на основе nssm), но, возможно, это все еще обрабатывается старым клиентом и включает в себя обманный хак. – Tensibai