Насколько я знаю, формального способа отменить приложение в рамках Rails нет. Вы можете рассмотреть возможность установки одного или нескольких обработчиков для базового языкового средства Ruby at_exit . Однако это будет иметь дело только с заказным завершением работы приложения.
Более общей стратегией было бы использование инфраструктуры мониторинга сервера, которая бы отслеживала упорядоченные и неожиданные случаи выхода для вашего приложения. Я очень сомневаюсь, что обработчики at_exit
будут вызваны, если ваш экземпляр rails был размещен внутри Passenger и по какой-то причине произошел сбой соответствующего сервера Apache или Nginx, хотя я на самом деле этого не проверял. Подобные наблюдения, вероятно, применимы к любому контейнеру приложения, который неожиданно завершит работу.
Вы можете рассмотреть что-то вроде Бога или Monit или Nagios (в зависимости от того, насколько сложны ваши требования) для реализации общей стратегии передачи приложений и выполнения правильная вещь для каждого стечения обстоятельств. Эти фреймворки также могут отслеживать эти демоны.