I am confused, I thought the purpose of setting the sticky bit on /var/ tmp was so you could count on your files being persistent there? What comes along and cleans out this directory? This is not to say your suggestion to to move to /var/run is not valid, but the code I inherited uses /var/tmp based on the security concerns at the time. The daemon, now best described as a LaunchAgent on Leopard that is in production I want to move to the launchd model from it's current StartupItems implementation. However I am not quite clear on how to let the domain socket listener know that I have been killed and restarted, is it my job to kill off the listener and restart, or could I create another another launchd task to watch for the creation of a new domain socket and would cause the listener to reconnect? For security reasons you do want to create a new domain socket, right? In testing I have also noticed that I can loop when launched, how would I set a limit or a backoff with a runaway launchd process? Ned Hogan MacCruzIn Enterprises, Inc. Apple Certified System Administrator XSAN/Open Directory Certified Apple Developer Connection Select On Nov 6, 2008, at 11:04 AM, Damien Sorresso wrote:
On Nov 6, 2008, at 10:37 AM, Iain Delaney wrote:
Ahh, that was the problem. So the real issue is that my daemon is loading, but not responding to my client app.
I'm trying to use Distributed Objects on top of UNIX Domain sockets. The directory for the socket is /var/tmp, and the client and server can communicate if I run both programs inside XCode. However, when I move the daemon program to /Library/ PrivilegedHelperTools and copy to plist into /Library/LaunchDaemons everything stops working. The client seems to be hanging while trying to connect to the socket.
Any ideas what I'm doing wrong?
I would highly recommend choosing a more stable location for your socket, first of all. /var/tmp gets cleaned out periodically; I'd suggest /var/run, which is only cleaned out at boot-time.
Also, have you specified the socket in your daemon's launchd.plist(5), and does your daemon check in with launchd to obtain the descriptor for the socket? If the answer to either of these questions is "No", please see the SampleD project.
http://developer.apple.com/samplecode/SampleD/listing3.html -- Damien Sorresso BSD Engineering Apple Inc.
_______________________________________________ launchd-dev mailing list launchd-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/launchd-dev