![](/img/trans.png)
[英]Does the process automatically clean up the resources taken by pthreads upon exit
[英]Linux on reboot process with PPID 1 do not clean up resources (socket)
在系统重新启动linux之后,我的ppid 1网络应用程序恶魔没有断开套接字连接。 但是,如果使用kill -9手动杀死那个恶魔,它将断开连接。
如果我使用nohup运行应用程序,我也会注意到相同的行为。 在重新启动时,它不会断开连接,而在不使用nohup的情况下,连接也会断开。
请提供有关如何正确处理恶魔清理资源的指示。
如果向服务器进程发送KILL
信号(即信号9),则您将无法进行任何清理。 但是,通常服务会提供一些触发干净关闭的方法。 在任何情况下都希望具有适用于TERM
信号(信号15)的适当处理程序的形式。
此外,明智的做法是将服务设置为通过系统的服务管理子系统进行管理,无论是SystemV样式的初始化脚本,systemd还是其他众多替代方法。 这样,你有过系统的系统重启或关机过程中如何以及何时关闭您的服务更多的控制,再加上它更容易的是在需要时手动管理服务。
这是个有趣的问题。
TCP活动关闭要求发送FIN
并等待FIN/ACK
。 显然,当要求系统重新启动时,它不应等待FIN/ACK
。 它仍然可以发送FIN
或RST
。
但是,您的其他应用程序一定不能期望对等方在连接失败时发送FIN
或RST
。 例如,如果您从计算机上拔下以太网电缆,并且您的应用程序不发送任何数据,则永远不会通知对等方已断开连接。 相反,您的应用程序应发送保持活动消息以检测断开的连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.