0

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

如果服务器正在运行,我想提前中止。有什么方法可以检查由script/generaterake 任务启动的服务器是否正在运行?

4

1 回答 1

2

您可以检查是否存在tmp/pids/server.pidrails 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
于 2012-04-12T06:10:34.740 回答