在部署时杀死独角兽进程

时间:2015-05-25 09:54:44

标签: ruby-on-rails bash unicorn

我正在尝试将unicorn添加到我的应用程序中,在我的部署脚本中添加了这些行:

namespace :deploy do
  task :restart do
    run "if [ -f #{unicorn_pid} ] && [ -e /proc/$(cat #{unicorn_pid}) ]; then kill -0 `cat #{unicorn_pid}`; else cd #{deploy_to}/current && bundle exec unicorn_rails -c #{unicorn_conf} -E #{rails_env} -D; fi"
  end
  task :start do
    run "bundle exec unicorn_rails -c #{unicorn_conf} -E #{rails_env} -D"
  end
  task :stop do
    run "if [ -f #{unicorn_pid} ] && [ -e /proc/$(cat #{unicorn_pid}) ]; then kill -QUIT `cat #{unicorn_pid}`; fi"
  end

  task :load_rvm do
    run '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' # Load RVM into a shell session *as a function*
  end
end

但是当我运行部署脚本时,我在任务“重启”时出现此错误:

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

1 个答案:

答案 0 :(得分:0)

Kill命令不会采用 -0 选项。那必须是 -9