On Sat, 7 Jan 2012, matthew sporleder wrote:
One thing that has always bothered me about netbsd rc is that running
an rc script will often silently do nothing.
If a service is turned NO by default in /etc/defaults/rc.conf, and you
run /etc/rc.d/foo start, you get nothing + a 0 return status.
The following patch gives a nice little messages:
--- rc.subr-bak 2012-01-07 09:22:36.000000000 -0500
+++ rc.subr 2012-01-07 10:13:49.000000000 -0500
@@ -55,6 +55,7 @@
# "no", "false", "off", or "0"
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
+ warn "\$${1} is set to $_value - not running $1."
return 1
;;
*)
rc.d # /etc/rc.d/named start
/etc/rc.d/named: WARNING: $named is set to NO - not running named.
rc.d # /etc/rc.d/named ftpd start
/etc/rc.d/named: WARNING: $named is set to NO - not running named.
The issues I haven't addressed are the return status, which I think
should be non-zero.
Why should it be non-zero? Not everyone, for example, would want a warning status if their file-server happened to have xdm=NO, or if their laptop has nfsd=NO
Also, I guess this would make the boot kind of noisy. Could we add something like: (/etc/rc) - run_rc_script $_rc_elem start + run_rc_script $_rc_elem start silent and then test if the boot rc_arg has 'silent' before printing the warning?
I would prefer to keep current default behavior, and add a new 'verbose' option instead:
- run_rc_script $_rc_elem start + run_rc_script $_rc_elem start verbose ------------------------------------------------------------------------- | Paul Goyette | PGP Key fingerprint: | E-mail addresses: | | Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com | | Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net | | Kernel Developer | | pgoyette at netbsd.org | -------------------------------------------------------------------------