namespace :sidekiq do
task :quiet do
on roles(:app) do
execute "pgrep -f 'sidekiq'| xargs kill -9 -USR1"
end
end
task :restart do
on roles(:app) do
execute "cd #{current_path} bundle exec sidekiq -C config/sidekiq.yml -d"
end
end
end
after 'deploy:starting', 'sidekiq:quiet'
after 'deploy:reverted', 'sidekiq:restart'
after 'deploy:published', 'sidekiq:restart'
这是我在deploy.rb
它正确地杀死了进程,它也创建了一个守护进程,但在几秒之内它就会被杀死。我正在使用capistrano进行部署。
我认为守护进程是子进程,而capistrano部署是父进程,因此在完成部署后它会终止子进程(即守护进程)。
请帮助我,我在过去一周内陷入困境。
答案 0 :(得分:0)
尝试使用模块capistrano-sidekiq。这很有效。
此外,您在一次执行中有两个命令,但缺少&&
:
execute "cd #{current_path} && bundle exec sidekiq -C config/sidekiq.yml -d"