svn commit: r288291 - head/etc
Adrian Chadd
adrian at FreeBSD.org
Sun Sep 27 04:03:12 UTC 2015
Author: adrian
Date: Sun Sep 27 04:03:11 2015
New Revision: 288291
URL: https://svnweb.freebsd.org/changeset/base/288291
Log:
Enforce consistent limits of daemons run from rc.subr:
* Allow the user to configure the login class to use in rc.conf
by using {daemon}_login_class, which;
* Use the daemon class by default;
* .. and then use 'limits' to set the login class so it works both
via init at startup (which runs this in 'daemon' class) and via
whichever root environment (eg command line, other daemons, etc.)
Reviewed by: dteske
Differential Revision: https://reviews.freebsd.org/D3630
Modified:
head/etc/rc.subr
Modified: head/etc/rc.subr
==============================================================================
--- head/etc/rc.subr Sun Sep 27 03:46:55 2015 (r288290)
+++ head/etc/rc.subr Sun Sep 27 04:03:11 2015 (r288291)
@@ -768,6 +768,8 @@ check_startmsgs()
#
# ${name}_prepend n Command added before ${command}.
#
+# ${name}_login_class n Login class to use, else "daemon".
+#
# ${rc_arg}_cmd n If set, use this as the method when invoked;
# Otherwise, use default command (see below)
#
@@ -942,7 +944,7 @@ run_rc_command()
_nice=\$${name}_nice _user=\$${name}_user \
_group=\$${name}_group _groups=\$${name}_groups \
_fib=\$${name}_fib _env=\$${name}_env \
- _prepend=\$${name}_prepend
+ _prepend=\$${name}_prepend _login_class=\${${name}_login_class:-daemon}
if [ -n "$_user" ]; then # unset $_user if running as that user
if [ "$_user" = "$(eval $IDCMD)" ]; then
@@ -1050,6 +1052,9 @@ $command $rc_flags $command_args"
fi
fi
+ # Prepend default limits
+ _doit="limits -C $_login_class $_doit"
+
# run the full command
#
if ! _run_rc_doit "$_doit"; then
More information about the svn-src-head
mailing list