Hey all,

I'm dealing with rc.d scripting and reading https://docs.freebsd.org/en/articles/rc-scripting/

Here's my question: Is there a sane way to have something like foo_pid *completely unset* in one case, but overridable by rc.conf after?

It took me a bit to wrap my head around the:

: ${dummy_enable:=no}
: ${dummy_msg="Nothing started."}

Examples.  (Why that first colon, what is this := syntax), etc.

What I'm trying to say in rc.subr language is:

If the user has set something in rc.conf, use it. Otherwise, leave it TOTALLY UNSET. Not to the null string. Undefined.

Anyway, here's my use case:

The "kdc" program can optionally have a pidfile (if you install mit krb5, it uses the same startup script rather than one in /usr/local/etc/rc.d)

But the base kdc doesn't support a pidfile at all. So "status" won't work if pid is set at all in /etc/rc.d/kdc -- but if it's unset, rc_subr will just search for the process without the pid, by name.

A line like the one above would define it. Even to a default. So it would break "status". But I'd like to actually be able to *check* a pidfile if I configure one. Since then a cleaner shutdown is possible, and code that relies on this stuff externally, like puppet, are cleaner.

This isn't about "why is a port using a base startup script, especially when that port drops other files into /usr/local/etc/rc.d", it's more a "hey, this syntax isn't clear in the above article, and how does one do it, and should it be added to the above?"

--

--------Dan Mahoney--------
Techie,  Sysadmin,  WebGeek
Gushi on efnet/undernet IRC
FB:  fb.com/DanielMahoneyIV
LI:   linkedin.com/in/gushi
Site:  http://www.gushi.org
---------------------------


Reply via email to