diff options
author | adrian <adrian@FreeBSD.org> | 2015-09-27 04:03:11 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2015-09-27 04:03:11 +0000 |
commit | 1f2ea82d25513d303025c79a8c6787ef22ab3edc (patch) | |
tree | 97a97a83293082d336d5f9203e244792297a7c8e /etc/rc.subr | |
parent | 9f18ee59aa59fb80b5c9ea0d0d54c24a55333ffd (diff) | |
download | FreeBSD-src-1f2ea82d25513d303025c79a8c6787ef22ab3edc.zip FreeBSD-src-1f2ea82d25513d303025c79a8c6787ef22ab3edc.tar.gz |
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
Diffstat (limited to 'etc/rc.subr')
-rw-r--r-- | etc/rc.subr | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/etc/rc.subr b/etc/rc.subr index c23c8fd..cd933c6 100644 --- a/etc/rc.subr +++ b/etc/rc.subr @@ -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 |