On Jun 7, 2006, at 12:06 , Michael Glaesemann wrote:

So, runit seems to work with launchd. The qpstmpd run script appears to work with the qpstmpd-forkserver. What am I missing?

Laurent Bercot on the runit mailing list helpfully provided a number of things I might check to se what's different between my shell environment (when I run sudo ./run from the terminal) and the boot environment under which the run script and qpsmtpd-forkserver run when launched via runit.

http://skarnet.org/lists/archive.cgi?2:msp:1386:mgfnpihglecpfmgnonjp

 When you do "sudo ./run", the run script is executed with most of
your user environment (open fds, environment variables and whatnot),
modified in some way by the sudo configuration.

 There's something in your service that works in a user environment
and doesn't in a boot environment. I don't know qpsmtpd at all, but
here are some random points:

 - Does your server work when stdin isn't a terminal? If not, why?
 - (depending on your boot configuration) Does your server work when
stdin is closed?
 - What do kernel limits look like in your boot environment? Are
there ulimit commands in log in scripts that make them less strict
in user environments?

I'm going to look into these more on my own (I need to learn about fds, how to execute scripts with varying stdin and stdout, kernel limits, and ulimit commands, and how these apply to Mac OS X 10.4 :) ), but I'm posting them here in hopes that someone might have a flash of insight.

Michael Glaesemann
grzm seespotcode net



Reply via email to