Как мой процесс может обнаружить, что компьютер выключается?

Я запускаю некоторые приложения на спотовых инстансах EC2. Такие экземпляры могут быть уничтожены Amazon без предупреждения.

В процессе выключения процессы уничтожаются в определенном порядке. У нас есть программы мониторинга/восстановления, которые должны вести себя по-разному в зависимости от того, выключается ли сервер или только что произошел сбой процесса.(в частности, мы не хотим ничего делать, если сервер фактически выключается)

Как я могу обнаружить в процессе восстановления (если он еще жив), что процессы были убиты из-за завершения работы?

(Подробнее о системе: я запускаю неизвестный/ненадежный/и т. д. код в песочнице, которая не изменяет внешнее состояние. Как правило, если код в песочнице дает сбой, это вина автора ненадежного кода, и мы не будем его повторно запускать. , Но если код в песочнице завершается из-за отключения или сбоя виртуальной машины, нам нужно повторно запустить его на другом экземпляре. Проблема, с которой я столкнулся сейчас, заключается в том, что код пользователя завершается первым, поэтому программа мониторинга неправильно считает сбой. ошибка пользователя.)

6
задан UsAaR33 22 May 2012 в 20:37
поделиться