[launchd-dev] Listening socket and fast user switching
Dave Zarzycki
zarzycki at apple.com
Thu May 22 12:05:27 PDT 2008
I'm sorry, I made a mistake, it should look like so:
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>Bonjour</key>
<string>MyServiceName</string>
<key>SockServiceName</key>
<string>0</string>
</dict>
</dict>
On May 22, 2008, at 12:01 PM, Dave Zarzycki wrote:
> Dave,
>
> The Apple way to solve this problem is to use Bonjour with a dynamic
> port assignment. Just use port zero, and set Bonjour to true like so:
>
> <key>Sockets</key>
> <dict>
> <key>Listeners</key>
> <dict>
> <key>Bonjour</key>
> <true/>
> <key>SockServiceName</key>
> <string>0</string>
> </dict>
> </dict>
>
> davez
>
>
>
> On May 22, 2008, at 11:38 AM, Dave Dribin wrote:
>
>> Hello,
>>
>> I'm writing a launchd agent that opens a TCP listening socket.
>> Ideally, I'd like launchd to open and listen to the socket via
>> SockServiceName so my agent only gets launched as-needed.
>>
>> The problem is I'd like to listen to the same port (e.g. 12345), no
>> matter which user is logged in. This is fine when there's only one
>> user logged in, but as soon as fast user switching comes into play,
>> the socket gets an "address already in use" when the second user logs
>> in.
>>
>> This is to be expected, I suppose. But is there any way to have
>> launchd only listen to the socket when the user is the "active" user,
>> and have it *not* listen when the user gets switched out, due to fast
>> user switching?
>>
>> At first glance the LimitLoadToSessionType looked promising, but it
>> doesn't look like any of those will do that.
>>
>> The solution I'm currently entertaining uses launchd to always launch
>> my agent, and have my agent do the socket listening. I can then use
>> the user switch notification to close down the listening port when
>> the
>> session is deactivated and open it when activated.
>>
>> Thanks,
>>
>> -Dave
>>
>> _______________________________________________
>> launchd-dev mailing list
>> launchd-dev at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/launchd-dev
>
> _______________________________________________
> launchd-dev mailing list
> launchd-dev at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/launchd-dev
More information about the launchd-dev
mailing list