Назад | Перейти на главную страницу

как запустить по запросу, когда в параметре указан порт?

У меня есть программа, которую я хочу запускать по запросу, используя launchd выполнив следующую команду:

/usr/local/bin/godoc -http=:6060

Эта программа запускает приложение HTTP, которое прослушивает указанный порт 6060.

В моем списке недвижимости есть

<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>

Однако, когда я запускаю демон, приложение выводит на stderr:

ListenAndServe :6060: listen tcp :6060: bind: address already in use

Насколько я понимаю, launchd создает сокет и передает его приложению, но это приложение пытается снова создать сокет, поэтому не удается.

Какие параметры у меня есть, чтобы запустить это launchd по запросу, по требованию?