Ich habe ein Stück Code, wo ich Kinder Prozesse spawn, um es effizienter zu machen. Sie scheinen jedoch alle Arten von Zombie-Prozessen zu erzeugen, die Sockets blockieren und die Seite zum Absturz bringen.Zombie-Prozesse erscheinen, wenn ich Prozesse spawne
spawn(:method => :thread) do
if @login_user.suggested_group_info.new_record?
xxx
end
end
1) Warum entstehen Zombieprozesse? 2) Wie könnte ich den Code so schreiben, dass ich sicher bin, dass ich den Prozess erledige, bevor es ein Zombie wird?
Rubin dies tut so ziemlich wie man erwarten würde. Spawn gibt eine PID zurück; Ein Aufruf von Process.waitpid (pid) wartet darauf, dass der Prozess beendet wird, und erntet dann den Zombie. –