Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Aug 2025 19:22:28 GMT
From:      Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 68669e92f5d2 - stable/14 - Add quiet/-q option to /usr/sbin/service
Message-ID:  <202508111922.57BJMS7c012226@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by des:

URL: https://cgit.FreeBSD.org/src/commit/?id=68669e92f5d2b883c0e2efaceaa1acc74424cd7b

commit 68669e92f5d2b883c0e2efaceaa1acc74424cd7b
Author:     Dan Mahoney <github@gushi.org>
AuthorDate: 2025-05-25 08:54:33 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2025-08-11 14:31:25 +0000

    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
    (cherry picked from commit 37983aef7c70b738cf63923bcfd2c4ae03ac5779)
    
    service: Fix repeated -v in man page
    
    Fix accidental repeated -v for -q.
    
    Fixes: 37983aef7c70
    Noticed by: Gary Jennejohn
    
    (cherry picked from commit 8fa4a4eb705ccaece5aac4ae1201034001f21313)
---
 usr.sbin/service/service.8  |  3 +++
 usr.sbin/service/service.sh | 23 +++++++++++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/usr.sbin/service/service.8 b/usr.sbin/service/service.8
index 7528fa04b0f1..67597bf9258e 100644
--- a/usr.sbin/service/service.8
+++ b/usr.sbin/service/service.8
@@ -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 q
+Be quiet, redirecting output to /dev/null.
 .El
 .Sh ENVIRONMENT
 When used to run rc.d scripts the
diff --git a/usr.sbin/service/service.sh b/usr.sbin/service/service.sh
index 8b7aa937967b..5f456418da49 100755
--- a/usr.sbin/service/service.sh
+++ b/usr.sbin/service/service.sh
@@ -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
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202508111922.57BJMS7c012226>