Tengo un programa que quiero ejecutar bajo demanda launchd
ejecutando el siguiente comando:
/usr/local/bin/godoc -http=:6060
Este programa inicia una aplicación HTTP que escucha en el puerto designado 6060.
En mi lista de propiedades tengo
<key>Sockets</key>
<dict>
<key>default</key>
<dict>
<key>SockNodeName</key>
<string>localhost</string>
<key>SockServiceName</key>
<integer>6060</integer>
<key>SockPassive</key>
<true/>
</dict>
</dict>
Sin embargo, cuando inicio el demonio, el resultado de la aplicación en stderr es:
ListenAndServe :6060: listen tcp :6060: bind: address already in use
Según tengo entendido, launchd
crea el socket y lo pasa a la aplicación, pero esta aplicación está intentando crear el socket nuevamente, por lo que falla.
¿Qué opciones tengo para ejecutar esto bajo launchd
demanda?