aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rc/rc.conf6
-rw-r--r--libexec/rc/rc.d/virtual_oss27
2 files changed, 17 insertions, 16 deletions
diff --git a/libexec/rc/rc.conf b/libexec/rc/rc.conf
index 75420e42cdeb..27e8c8456b6f 100644
--- a/libexec/rc/rc.conf
+++ b/libexec/rc/rc.conf
@@ -736,7 +736,11 @@ newsyslog_flags="-CN" # Newsyslog flags to create marked files
mixer_enable="YES" # Run the sound mixer.
opensm_enable="NO" # Opensm(8) for infiniband devices defaults to off
nuageinit_enable="NO" # Run nuageinit at startup
-virtual_oss_enable="NO" # Run virtual_oss at startup
+
+virtual_oss_enable="NO" # Run virtual_oss at startup.
+virtual_oss_configs="dsp" # List of configurations.
+virtual_oss_default_control_device="vdsp.ctl" # Default configuration's
+ # control device.
# rctl(8) requires kernel options RACCT and RCTL
rctl_enable="YES" # Load rctl(8) rules on boot
diff --git a/libexec/rc/rc.d/virtual_oss b/libexec/rc/rc.d/virtual_oss
index 73a486f547a5..9861545b8bfc 100644
--- a/libexec/rc/rc.d/virtual_oss
+++ b/libexec/rc/rc.d/virtual_oss
@@ -22,13 +22,9 @@ status_cmd="${name}_status"
required_modules="cuse"
-configs=
pidpath="/var/run/${name}"
-default_unit=$(sysctl -n hw.snd.default_unit 2> /dev/null)
-
-# Default configuration's control device.
-: "${virtual_oss_default_control_device:="vdsp.ctl"}"
+default_unit=$(sysctl -n hw.snd.default_unit 2> /dev/null)
virtual_oss_default_args="\
-S \
-C 2 \
@@ -42,12 +38,6 @@ virtual_oss_default_args="\
-l dsp.loop \
-t ${virtual_oss_default_control_device}"
-# Set to NO by default. Set it to "YES" to enable virtual_oss.
-: "${virtual_oss_enable:="NO"}"
-
-# List of configurations to use. Default is "dsp".
-: "${virtual_oss_configs:="dsp"}"
-
# Default (dsp) virtual_oss config.
: "${virtual_oss_dsp:="${virtual_oss_default_args}"}"
@@ -86,10 +76,17 @@ stop_instance()
if [ -z "${instance_args}" ]; then
warn "no such config: ${config}"
else
- startmsg -n "Stopping virtual_oss config: ${config}: "
- kill "$(cat "${pidpath}/${config}.pid")"
- rm -f "${pidpath}/${config}.pid"
- startmsg "done"
+ pidfile="${pidpath}/${config}.pid"
+ if [ ! -f "${pidfile}" ]; then
+ warn "not running: ${config}"
+ else
+ pid="$(cat "${pidfile}")"
+ startmsg -n "Stopping virtual_oss config: ${config}: "
+ kill "${pid}"
+ pwait "${pid}"
+ rm -f "${pidfile}"
+ startmsg "done"
+ fi
fi
}