는 근로자 (필요에 적응)를 다시 시작하는 데 사용됩니다 action :nothing
와 함께 execute
리소스를 만듭니다
execute "restart_resque_workers" do
command "pkill resque && QUEUE='*' bundle exec rake environment resque:work >>/log/resque.log 2>&1 &"
cwd "/path/to/app"
action :nothing
end
다음, 배포 리소스에 추가 :
application "app" do
...
notifies :run, "execute[restart_resque_workers]"
end
를 이상적으로, stop
, start
및 restart
메커니즘은 적절한 서비스에 의해 처리되지만 어떤 경우 든 전체 패턴은 동일합니다.
application
리소스가 수정 된 경우에만 notifies
속성이 시작됩니다 (일반적으로 이는 새 배포를 의미 함).
알림에 대한 추가 정보 in the Chef docs.
가난한 사람의 서비스는 다음과 같이 갈 수 :
이
service 'resque_workers' do
start = "QUEUE='*' bundle exec rake environment resque:work >>/log/resque.log 2>&1"
stop = "pkill resque"
start_command start
stop_command stop
restart_command "#{stop}; #{start}"
supports [ :start, :stop, :restart ]
end
그런 다음 application
자원에 notifies :restart, "service[resque_workers]"
를 사용합니다.
서비스를 작성해 주셔서 감사합니다. :) –
NP! 나는 나의 요리 책 중 하나에 대해 비슷한 것을 한 것 뿐이므로 여기에 그것을 넣는다. :)이 서비스는'service rescue_workers start/stop'를 사용하여 OS에서 관리 할 수있는 실제 서비스가 아닙니다. 어떤 이유로 든 상자 자체에서 관리해야하는 경우에도 명령을 직접 실행해야합니다. – cassianoleal