确定rails服务器是否从rake任务运行

时间:2012-04-12 05:39:06

标签: ruby-on-rails ruby rake

我有一个rake任务删除了一些文件。这些文件可以由应用程序主动使用。由于我怀疑我正在运行的文件系统(AFS)的一些特性,我无法在应用程序(和服务器)运行时删除文件。

如果服务器正在运行,我想提前中止。有没有办法检查script/generate启动的服务器是否在rake任务内运行?

1 个答案:

答案 0 :(得分:2)

您可以检查tmp/pids/server.pid是否存在,rails s在启动时会创建,并且应该在退出时删除。请注意,如果服务器没有干净地退出,文件可能仍然存在,所以您应该从文件中读取PID并检查它是否实际上正在运行:

path = File.join(Rails.root, "tmp", "pids", "server.pid")
pid = File.read(path).to_i
server_running = true
begin
  Process.getpgid pid
rescue Errno::ESRCH
  server_running = false
end
相关问题