我试图找出一种在 OS X 服务器上触发启动守护程序的方法。我发现我可以设置 launchd 守护程序来监听特定的套接字连接(tcp 端口),当被联系时,它将执行一个脚本。我已经成功地完成了所有这些,除了例如当我打开到套接字的连接(用于使用 telnet 进行测试)时,即使在我断开套接字连接之后,脚本也会无限期地执行。
已启动 plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.app</string>
<key>Program</key>
<string>/usr/bin/true</string>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>1234</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<true/>
</dict>
</dict>
</plist>
有谁知道为什么脚本被一次又一次地调用?我的目标是让脚本仅在从客户端建立套接字连接时执行一次......
任何帮助表示赞赏,文斯