【发布时间】:2011-09-11 04:02:16
【问题描述】:
我有一个使用套接字、数据库连接等的进程。它基本上是一个在传感器数据和 Web 界面之间中继的服务器进程,因此确保应用程序(如果被终止)正常终止非常重要。
如何处理意外异常,例如段错误(至少用于调试)以及终止信号,以便我可以关闭任何连接并停止任何正在运行的线程,以便进程不会留下它正在使用的任何东西?
【问题讨论】:
-
切记继续运行,甚至清理,在出现分段错误后可能会很危险。
-
还请记住,您无法捕捉到终止信号。
-
不确定你想避免什么混乱。杀死线程、关闭文件和释放内存通常由操作系统非常有效地完成,因此在大多数情况下,简单的退出就可以解决问题。你有什么具体的担心吗?
-
@gabe - 最好说你抓不到
SIGKILL,以免让那些从未使用过shell命令kill以外的人感到困惑;) -
@Soren:我不知道 OP 的问题,但确保文件始终处于一致状态、数据库事务回滚等通常需要操作系统无法处理的清理只需退出您的进程。