Systemd如何与套接字激活的应用程序通信连接已关闭?如果无法将此事件配置为自动执行此操作,如何修改我的应用程序以检测此事件?
我们正在尝试使用Systemd套接字为遗留代码添加网络支持。使用these tutorials,我们能够配置一个侦听TCP端口,并在连接进入时启动应用程序的实例。问题是当连接关闭时,服务仍然在运行虽然套接字已关闭。
systemct list-units
和netstat -tuapn
输出是您建立连接时的预期
systemctl list-units:
myapp@5-192.168.0.75:10001-192.168.210.102:19983.service loaded active running My App
netstat -tuapn:
tcp 0 0 192.168.0.75:10001 192.168.210.102:19983 ESTABLISHED 1/init
但是,一旦客户端关闭连接,就会关闭并删除套接字,但应用程序仍然作为服务运行:
systemctl list-units:
myapp@5-192.168.0.75:10001-192.168.210.102:19983.service loaded active running My App
netstat -tuapn:
[no entry]