discourse/script/demon_test/child
Sam fc05164667 demo script for demonizing using fork exec
minor refinements to demon
2018-01-11 13:51:52 +11:00

32 lines
534 B
Ruby
Executable File

#!/usr/bin/env ruby
$parent_pid = ARGV[0].to_i
puts "Hello from #{Process.pid} my parent is #{$parent_pid}"
Thread.new do
def alive?(pid)
Process.kill(0, pid)
true
rescue
false
end
while true
begin
unless alive?($parent_pid)
STDERR.puts "Parent was terminated!"
Process.kill "TERM", Process.pid
sleep 10
Process.kill "KILL", Process.pid
end
rescue => e
STDERR.puts "URGENT monitoring thread had an exception #{e}"
end
sleep 1
end
end
sleep