From ae44d27bfd8495d1c5ea352cdadf235c81d17dbe Mon Sep 17 00:00:00 2001 From: Yaroslav Tykhiy Date: Thu, 17 Aug 2006 08:04:20 +0000 Subject: [PATCH] Allow for setting negative priority (niceness) when $foo_user is non-root. The order in _doit must be "nice su", not "su nice", for that. In addition, don't ignore the exit status from "cd $foo_chdir". Reviewed by: freebsd-rc (silence) MFC after: 1 week --- etc/rc.subr | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/etc/rc.subr b/etc/rc.subr index f89c6996278..c20cd43ba0e 100644 --- a/etc/rc.subr +++ b/etc/rc.subr @@ -666,12 +666,17 @@ chroot ${_user:+-u $_user }${_group:+-g $_group }${_groups:+-G $_groups }\ $_chroot $command $rc_flags $command_args" else _doit="\ -${_chdir:+cd $_chdir; }\ -${_nice:+nice -n $_nice }\ +${_chdir:+cd $_chdir && }\ $command $rc_flags $command_args" if [ -n "$_user" ]; then _doit="su -m $_user -c 'sh -c \"$_doit\"'" fi + if [ -n "$_nice" ]; then + if [ -z "$_user" ]; then + _doit="sh -c \"$_doit\"" + fi + _doit="nice -n $_nice $_doit" + fi fi # run the full command;