Search code examples
rubylinuxprocesszombie-process

Zombie Processes Appearing When I Spawn Processes


I have a pieces of code where i spawn off children processes to make it more efficient. However, they appear to create all sorts of zombie processes which block sockets and bring down the site.

spawn(:method => :thread) do
   if @login_user.suggested_group_info.new_record?
       xxx
   end
end

1) Why is this creating zombie processes? 2) How could i write the code such that i make sure i kill the process before it becomes a zombie?


Solution

  • You have to save the PID of the spawned process and execute the waitpid(2) system call upon it after it dies. (I don't know how Ruby does this.)