Skip to content

Commit e529274

Browse files
committed
Add quiet/-q option to /usr/sbin/service
1 parent bada381 commit e529274

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

usr.sbin/service/service.8

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
.Fl r
4646
.Nm
4747
.Op Fl j Ar jail
48+
.Op Fl q
4849
.Op Fl v
4950
.Op Fl E Ar var=value
5051
.Ar script
@@ -115,6 +116,8 @@ as in
115116
above, but list all of the files, not just what is enabled.
116117
.It Fl v
117118
Be slightly more verbose.
119+
.It Fl v
120+
Be quiet, redirecting output to /dev/null.
118121
.El
119122
.Sh ENVIRONMENT
120123
When used to run rc.d scripts the

usr.sbin/service/service.sh

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,19 @@ usage () {
4444
echo "-R Stop and start enabled $local_startup services"
4545
echo "-l List all scripts in /etc/rc.d and $local_startup"
4646
echo '-r Show the results of boot time rcorder'
47+
echo '-q quiet'
4748
echo '-v Verbose'
4849
echo ''
4950
}
5051

51-
while getopts 'j:E:ehlrRv' COMMAND_LINE_ARGUMENT ; do
52+
while getopts 'j:E:ehlqrRv' COMMAND_LINE_ARGUMENT ; do
5253
case "${COMMAND_LINE_ARGUMENT}" in
5354
j) JAIL="${OPTARG}" ;;
5455
E) VARS="${VARS} ${OPTARG}" ;;
5556
e) ENABLED=eopt ;;
5657
h) usage ; exit 0 ;;
5758
l) LIST=lopt ;;
59+
q) QUIET=qopt ;;
5860
r) RCORDER=ropt ;;
5961
R) RESTART=Ropt ;;
6062
v) VERBOSE=vopt ;;
@@ -69,6 +71,7 @@ if [ -n "${JAIL}" ]; then
6971
args=""
7072
[ -n "${ENABLED}" ] && args="${args} -e"
7173
[ -n "${LIST}" ] && args="${args} -l"
74+
[ -n "${QUIET}" ] && args="${args} -q"
7275
[ -n "${RCORDER}" ] && args="${args} -r"
7376
[ -n "${RESTART}" ] && args="${args} -R"
7477
[ -n "${VERBOSE}" ] && args="${args} -v"
@@ -100,14 +103,22 @@ if [ -n "$RESTART" ]; then
100103
if [ -n "$rcvar" ]; then
101104
load_rc_config_var ${name} ${rcvar}
102105
fi
103-
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop
106+
if [ -n "$QUIET" ]; then
107+
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop >/dev/null 2>&1
108+
else
109+
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop
110+
fi
104111
fi
105112
done
106113
for file in $files; do
107114
if grep -q ^rcvar $file; then
108115
eval `grep ^name= $file`
109116
eval `grep ^rcvar $file`
110-
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start
117+
if [ -n "$QUIET" ]; then
118+
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start >/dev/null 2>&1
119+
else
120+
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start
121+
fi
111122
fi
112123
done
113124

@@ -174,7 +185,11 @@ cd /
174185
for dir in /etc/rc.d $local_startup; do
175186
if [ -x "$dir/$script" ]; then
176187
[ -n "$VERBOSE" ] && echo "$script is located in $dir"
177-
exec /usr/bin/env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin ${VARS} "$dir/$script" "$@"
188+
if [ -n "$QUIET" ]; then
189+
exec /usr/bin/env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin ${VARS} "$dir/$script" "$@" > /dev/null 2>&1
190+
else
191+
exec /usr/bin/env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin ${VARS} "$dir/$script" "$@"
192+
fi
178193
fi
179194
done
180195

0 commit comments

Comments
 (0)