rc.d and environment variables
vas at mpeks.tomsk.su
Fri Dec 24 14:40:06 UTC 2010
> > > > > > I'm not sure this will work. The initial question was about
> > > > > > how to obtain an environmental variable. If the rc.d script
> > > > > > of svnserve sources /etc/rc.conf and/or /etc/rc.conf.local,
> > > > > > it is okay,
> > > > >
> > > > > They do. rc.d scripts all start by sucking in rc.subr, which in
> > > > > turn pulls in the rc.conf files.
> > > >
> > > > So how do I make the /usr/local/etc/rc.d/svnserve script suck in
> > > > KRB5_KTNAME for the "svn" user from the rc.conf* files?
> > >
> > > Just export it from rc.conf
> > If exported from rc.conf, it will affect all daemons. I need to set it
> > only for svnserve or for the svn user (which is equivalent in my
> > case).
> [ "$name" = "svnserve" ] && export KRB5_KTNAME="/home/svn/svn.keytab"
This looks really ugly.
A thorough examination of /etc/rc.subr shows that a startup script
sources a certain /etc/rc.conf.d/"$_name". Maybe I should try to place
"export KRB5_KTNAME=/home/svn/svn.keytab" there. At least
/etc/rc.conf.d/svnserve will be sourced only once at svnserve startup,
and not hundreds of times like rc.conf.
But anyway, I don't like the idea of placing commands (not variables)
in /etc/rc.conf* There should be support for the rc.d framework to
assign limits, environment variables and login classes.
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
sip:sudakov at sibptus.tomsk.ru
More information about the freebsd-questions