我在 EC2 现货实例上运行一些应用程序。此类实例可能会在没有通知的情况下被 Amazon 杀死。
在关闭过程中,进程按某种顺序被杀死。我们有监控/恢复程序,它们的行为应该根据服务器是关闭还是进程刚刚崩溃而有所不同。(特别是如果服务器实际上正在关闭,我们不想做任何事情)
如何在恢复过程中(如果它仍然存在)检测到进程因关闭而被杀死?
(更多系统细节:我在不修改外部状态的沙箱中运行未知/不受信任/等代码。通常如果沙箱代码崩溃,这是不受信任代码的作者的错,我们不会重新运行它。但如果沙盒代码由于VM关闭或失败而终止,我们需要在另一个实例上重新运行它。我现在遇到的问题是用户的代码首先被终止,所以监控程序错误地认为崩溃是用户错误.)