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

在rake任务中杀死ruby守护进程,ruby,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)

在一些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 deploy中调用这些任务,例如在“pdf:generate\u pdf”、“pdf:stop\u server”之后调用

我没有收到错误,但是我仍然可以看到web服务器提供的页面


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

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

task :stop_server do
 system("pkill -f http-server")
end