Я хотел бы создать демона ruby, который корректно завершал бы свою работу с помощью команды kill.
Я хотел бы добавить ловушку сигнала, которая будет ждать до завершения #code, выполнение которого может занять некоторое время
, прежде чем завершиться. Как мне добавить это к чему-то вроде этого:
pid = fork do
pid_file = "/tmp/pids/daemon6.pid"
File.open(pid, 'w'){ |f| f.write(Process.pid) }
loop do
begin
#code that could take some time to run
rescue Exception => e
Notifier.deliver_daemon_rescued_notification(e)
end
sleep(10)
end
end
Process.detach pid
Кроме того, было бы лучше иметь это в отдельном сценарии, например, в отдельном сценарии уничтожения, вместо того, чтобы иметь его как часть кода демона? Как что-то monit
или Бог
призвал бы остановить это?
Я ценю любые предложения.