Launchd not starting lighttpd - startupitem.requires

James Berry jberry at
Thu Jun 21 15:34:14 PDT 2007

Hi Ryan,

On Jun 21, 2007, at 3:27 PM, Ryan Schmidt wrote:

> On Jun 21, 2007, at 14:48, Sterling Anderson wrote:
>> On Jun 21, 2007, at 11:50 AM, James Berry wrote:
>>> On Jun 21, 2007, at 7:24 AM, Sterling Anderson wrote:
>>>> On Jun 21, 2007, at 1:33 AM, markd at wrote:
>>>>> Sterling Anderson on Wednesday, June 20, 2007 at 8:38 PM -0800  
>>>>> wrote:
>>>>>> Nothing in the console at all. I am stumped. No error messages at
>>>>>> all. The wrapper has the correct syntax. Manually loading and
>>>>>> unloading the launchd file works properly. I just don't get  
>>>>>> why it's
>>>>>> not working on boot.
>>>>> Ah, then it must be a timinig issue.  I just found an feature  
>>>>> that isn't
>>>>> documented in the manpage: startupitem.requires.  Theoretically  
>>>>> that could
>>>>> be used to delay execution until some other functions are  
>>>>> started.  See
>>>>> the radmind portfile for an example.  However, 10.3 also had  
>>>>> that keyword
>>>>> for the systemstarter, but I never had any luck with that.  I  
>>>>> ended up
>>>>> using a start script with a sleep command in it.  See the Snort  
>>>>> port.  But
>>>>> I didn't know about startupitem.requires on 10.4 so I didn't  
>>>>> try that.  I
>>>>> will sometime.  Try editing the portfile and using  
>>>>> startup.requires as the
>>>>> radmind port does and let us know if it works.
>>>> Added the startupitem.requires to the Portfile and reinstalled.  
>>>> No dice. I'm very confused.
>>> startupitem.requires takes effect only for SystemStarter items,  
>>> not for launchd.
>>> Here's what I'd try:
>>>> On Apr 9, 2007, at 10:22 AM, James Berry wrote:
>>>>> You might try adding the option "--restart-netchange" to the  
>>>>> daemondo invocation in /Library/LaunchDaemons/ 
>>>>> org.macports.bind9.plist:
>>>>> 		<string>--restart-netchange</string>
>>>>> This should cause daemondo to restart bind if the ip address  
>>>>> changes, which is probably occurring after bind gets running.
>>> This doesn't prevent lighttpd from starting, but it does restart  
>>> it when the network configuration changes, probably sometime  
>>> after it first starts up.
>>> Let me know if this works for you. That string line should follow  
>>> the --label line, for instance.
>> This suggestion seems to have done the trick. Thanks for your help.
> So, wait, what?
> What's "org.macports.bind9.plist" doing above? I thought we were  
> talking about the lighttpd plist?

Sorry, that was just me adding to the confusion. I pasted in a quote  
from something I'd written in April, about a similar problem with  
Bind. It applies equally well to lighttpd.

> lighttpd starts just fine for me with the MacPorts lighttpd plist.

Yes, this is probably network and computer dependent, based on subtle  
timing differences during the boot process.

> Are you saying we need to make a change to the part of the lighttpd  
> portfile that generates the plist?

Well, currently we don't have any easy way to put that change into  
the portfile itself, and have it reflected down into the generated  
plist. Granted, we should. It's likely that the illustrated line  
would be useful in most networked daemons.


More information about the macports-users mailing list