Problems with startup scripts

Doug Barton dougb at FreeBSD.org
Tue Jun 3 17:03:44 UTC 2008


Paul Schmehl wrote:
> --On Tuesday, June 03, 2008 13:19:37 +0100 RW 
> <fbsd06 at mlists.homeunix.com> wrote:
> 
>> On Mon, 02 Jun 2008 22:13:15 -0500
>> Paul Schmehl <pschmehl_lists at tx.rr.com> wrote:
>>
>>
>>> Imagine my surprise when I discovered that *all* of my startup
>>> scripts=20 were running double flags!
>>>
>>> So, I looked at /etc/rc.subr, and lo and behold:
>>> Line 670 of /etc/rc.subr has "$command $rc_flags $command_args"
>>>
>>> So, the question is, is this an error in rc_subr?

No, it's always been that way, and it's actually fairly well documented.

>> There are a number of /etc/rc.d scripts that follow similar usage, but
>> they are mostly using flag variable names that don't match
>> "${name}_flags". The exception is  auditd which presumably would
>> get double flags, if it were actually given any.

That usage in auditd appears to be an error.

>> $ grep -Ei "command_args.*=.*flags" /etc/rc.d/*
>> /etc/rc.d/auditd:command_args="${auditd_flags}"
>> /etc/rc.d/nfsd:command_args="${nfs_server_flags}"
>> /etc/rc.d/ypbind:command_args="${nis_client_flags}"
>> /etc/rc.d/yppasswdd:command_args="${nis_yppasswdd_flags}"
>> /etc/rc.d/ypserv:command_args="${nis_server_flags}"
>> /etc/rc.d/ypset:command_args="${nis_ypset_flags}"
>> /etc/rc.d/ypxfrd:command_args="${nis_ypxfrd_flags}"
> 
> I'm willing to bet that if you run some of these scripts through sh -x 
> (auditd, for example) you will find that they use double flags, just 
> like mine do. 

That would be true for auditd, but not for the others, for the reason 
described above.

> Since rc.subr will append the flags to the commandline, adding them to 
> command_args is superfluous.  If you set flags defaults in the script 
> such that /etc/rc.conf settings will override them, there's no need to 
> add flags to the commandline.  Rc.subr does it for you.

That's right. I try to catch these when scripts are committed or 
modified, but I can't review them all. Glad to hear that you got the 
right education though, and hopefully this being on the ports list 
will help someone else too.

Doug

-- 

     This .signature sanitized for your protection



More information about the freebsd-ports mailing list