在rake任务中杀死ruby守护进程

时间:2015-07-20 17:39:48

标签: ruby

我正在使用需要在某些rake任务期间启动和停止服务器。我使用以下代码:

task :start_server do
  job = fork do
    system `http-server ./_site -p 4000`
  end
  Process.detach(job)
  @pid = Process.pid
end

task :stop_server do
  puts "stopping server"
  system Process.kill('QUIT', @pid)
end

开始工作正常,但我不能让它停下来。

我在capistrano部署中调用这些任务,例如after 'pdf:generate_pdf', 'pdf:stop_server'

我没有收到错误但我仍然可以看到网页服务器正在提供网页。

有没有更好的方法来结束这个过程?

1 个答案:

答案 0 :(得分:0)

我发现此命令可以完美地停止http服务器。

task :stop_server do
 system("pkill -f http-server")
end
相关问题