У меня есть части кода, где я мечу икру от дочерних процессов для создания его более эффективным. Однако они, кажется, создают все виды процессов-зомби, которые снабжает сокетом блок, и снизьте сайт.
spawn(:method => :thread) do
if @login_user.suggested_group_info.new_record?
xxx
end
end
1) Почему это создает процессы-зомби? 2) Как я мог написать код, таким образом, что я удостоверяюсь, что уничтожаю процесс, прежде чем это станет зомби?
Вы должны сохранить PID порожденного процесса и выполнить для него системный вызов waitpid (2) после его смерти. (Я не знаю, как это делает Ruby.)