Конечно, просто Signal.trap
HUP
сигнал:
def do_fork
$pid = fork do
Signal.trap("HUP") do
puts "Received HUP, ignoring..."
end
Signal.trap("TERM") do
puts "Received TERM, terminating..."
exit(0)
end
while true do sleep(10_000) end
end
Process.detach($pid)
end
do_fork
Скопируйте код выше в некоторый файл и запустите его с ruby file.rb
, чтобы увидеть, что он игнорирует kill -HUP pid
и закрывается на kill -TERM pid
.