服务是否应该在 SIGTERM 上取消并终止未完成的工作?

服务是否应该在 SIGTERM 上取消并终止未完成的工作?

假设服务不会使事物处于“危险”或不一致状态(尽管会观察到执行任务失败),它是否应该关闭文件、连接和任何其他工作?

答案1

是的,应该的。是否有效取决于实用程序。

文件和连接通常在程序退出时关闭无论出于何种原因,“其他工作”可能会半途而废(临时文件可能会被留下,数据库可能处于可疑状态,实际未写入文件的数据将丢失等)

一个程序可能会捕获TERM在信号处理程序中捕获信号并退出优雅地,即完成它正在做的任何事情,并在实际终止时让世界处于有序状态。它还可能完全捕获并忽略信号。

相关内容