Obecnie robię to w jednym poleceniem niezwłocznegozabić proces i procesy składowe w Ruby w systemie Windows
require 'win32/process'
p = Process.spawn("C:/ruby193/bin/bundle exec rails s")
puts p
Process.waitpid(p)
a następnie w innym
require 'win32/process'
Process.kill(1,<p>)
Problem polega na tym, że proces I tarło (serwer Rails w tym przypadku) spawnuje łańcuch podprocesów. Komenda kill nie zabija ich, po prostu zostawia ich osieroconych bez rodzica.
Jakieś pomysły, w jaki sposób mogę zabić cały zrodzony proces i wszystkie jego dzieci?
Zastanawiam się, czy pętla, aby uzyskać procs jest niezawodny. W procesach Linux-a może być nieczynnych, więc może być potrzebnych kilka iteracji, aby złapać wszystkie. – akostadinov