Add quiet/-q option to /usr/sbin/service

Signed-off-by: Dan Mahoney <freebsd@gushi.org>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1709
Closes: https://github.com/freebsd/freebsd-src/pull/1709
This commit is contained in:
Dan Mahoney 2025-05-25 01:54:33 -07:00 committed by Warner Losh
parent 86f06e612b
commit 37983aef7c
2 changed files with 22 additions and 4 deletions

View file

@ -45,6 +45,7 @@
.Fl r
.Nm
.Op Fl j Ar jail
.Op Fl q
.Op Fl v
.Op Fl E Ar var=value
.Ar script
@ -115,6 +116,8 @@ as in
above, but list all of the files, not just what is enabled.
.It Fl v
Be slightly more verbose.
.It Fl v
Be quiet, redirecting output to /dev/null.
.El
.Sh ENVIRONMENT
When used to run rc.d scripts the

View file

@ -44,17 +44,19 @@ usage () {
echo "-R Stop and start enabled $local_startup services"
echo "-l List all scripts in /etc/rc.d and $local_startup"
echo '-r Show the results of boot time rcorder'
echo '-q quiet'
echo '-v Verbose'
echo ''
}
while getopts 'j:E:ehlrRv' COMMAND_LINE_ARGUMENT ; do
while getopts 'j:E:ehlqrRv' COMMAND_LINE_ARGUMENT ; do
case "${COMMAND_LINE_ARGUMENT}" in
j) JAIL="${OPTARG}" ;;
E) VARS="${VARS} ${OPTARG}" ;;
e) ENABLED=eopt ;;
h) usage ; exit 0 ;;
l) LIST=lopt ;;
q) QUIET=qopt ;;
r) RCORDER=ropt ;;
R) RESTART=Ropt ;;
v) VERBOSE=vopt ;;
@ -69,6 +71,7 @@ if [ -n "${JAIL}" ]; then
args=""
[ -n "${ENABLED}" ] && args="${args} -e"
[ -n "${LIST}" ] && args="${args} -l"
[ -n "${QUIET}" ] && args="${args} -q"
[ -n "${RCORDER}" ] && args="${args} -r"
[ -n "${RESTART}" ] && args="${args} -R"
[ -n "${VERBOSE}" ] && args="${args} -v"
@ -100,14 +103,22 @@ if [ -n "$RESTART" ]; then
if [ -n "$rcvar" ]; then
load_rc_config_var ${name} ${rcvar}
fi
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop
if [ -n "$QUIET" ]; then
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop >/dev/null 2>&1
else
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop
fi
fi
done
for file in $files; do
if grep -q ^rcvar $file; then
eval `grep ^name= $file`
eval `grep ^rcvar $file`
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start
if [ -n "$QUIET" ]; then
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start >/dev/null 2>&1
else
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start
fi
fi
done
@ -174,7 +185,11 @@ cd /
for dir in /etc/rc.d $local_startup; do
if [ -x "$dir/$script" ]; then
[ -n "$VERBOSE" ] && echo "$script is located in $dir"
exec /usr/bin/env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin ${VARS} "$dir/$script" "$@"
if [ -n "$QUIET" ]; then
exec /usr/bin/env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin ${VARS} "$dir/$script" "$@" > /dev/null 2>&1
else
exec /usr/bin/env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin ${VARS} "$dir/$script" "$@"
fi
fi
done