linux - 可以关闭两个本地进程之间的 TCP 连接而不涉及任何一个进程吗?
问题描述
我有两个用两种不同编程语言编写的进程,它们通过本地 TCP 连接交换信息。一个进程正在启动另一个进程,但它们的生命周期必须共享,即如果一个进程死了,另一个进程也会死,反之亦然。
我想使用 TCP 连接作为检测对方是否崩溃的机制,但我不确定它是否安全。我想知道是否存在连接可能由于进程崩溃或退出之一以外的其他原因而关闭的情况。
编辑:
- 理想情况下,系统需要跨操作系统移植,这就是为什么使用 TCP 连接而不是 Unix 域套接字的原因。
- 我知道可以使用管理工具来终止连接。我想知道的是,在正常情况下(两个进程都运行良好)是否存在连接会关闭的情况。
解决方案
如果为您的进程提供服务的计算机距离很远,那么沿途的网络问题当然可能会导致问题,否则关闭连接并非易事。诸如“tcpkill”之类的工具可以关闭在本地计算机上发起或终止的连接,如果您穿过防火墙,那么防火墙管理员当然可能会关闭通过的连接。
我认为您的方案会运作良好;如果某些原因导致网络连接中断,那么您的两个进程都将终止,因此最坏的情况是停机时间过长——我不希望通过正常网络进行连接。
推荐阅读
- python - Python 播放 ffpyplayer 后删除文件
- ios - 将从 SOAP 服务返回的数据传递到自定义对象数组
- python - 如何让机器人使用命令发送随机在线图片和报价?
- npm - NUXT npm run build on nuxt events.js:292 throw er; // 未处理的“错误”事件 ^
- apache - 如果是文档,则最后一个路径名重定向到第一个路径名
- python - 如何并行化 Databricks 文件复制/上传操作?
- django - Neovim for Django:元类无法识别
- firebase - Firebase:在验证时禁用帐户或在启用后发送验证
- r - R中未对齐的投影
- unity3d - 为什么 mipmap 在这个 2.5D 场景中没有提升精灵的性能?