0

いくつかのファイルを削除するrakeタスクがあります。これらのファイルがアプリケーションによってアクティブに使用されている可能性があります。私が実行しているファイルシステム(AFS)のいくつかの特性が原因で、アプリ(およびサーバー)の実行中にファイルを削除できません。

サーバーが稼働している場合は、早期に中止したいと思います。で起動したサーバーがscript/generaterakeタスク内で実行されているかどうかを確認する方法はありますか?

4

1 に答える 1

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
于 2012-04-12T06:10:34.740 に答える