summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobert <robert@openbsd.org>2010-12-10 21:25:50 +0000
committerrobert <robert@openbsd.org>2010-12-10 21:25:50 +0000
commitcf87d08df3bfe972694496a6da2873f9e599ce0f (patch)
treec0441f48062c841b103076ed3e694b730f2e5461
parentRephrase a confusing sentence. (diff)
downloadwireguard-openbsd-cf87d08df3bfe972694496a6da2873f9e599ce0f.tar.xz
wireguard-openbsd-cf87d08df3bfe972694496a6da2873f9e599ce0f.zip
Add support for setting _user _class and _shell for a specific daemon,
and use su to start the daemons. By default if there is no class defined, daemon will be used. For a shell it defaults to /bin/sh.
-rw-r--r--etc/rc.d/rc.subr8
1 files changed, 6 insertions, 2 deletions
diff --git a/etc/rc.d/rc.subr b/etc/rc.d/rc.subr
index 079dd477f8a..ce1991e5f41 100644
--- a/etc/rc.d/rc.subr
+++ b/etc/rc.d/rc.subr
@@ -1,4 +1,4 @@
-# $OpenBSD: rc.subr,v 1.8 2010/10/28 21:36:45 robert Exp $
+# $OpenBSD: rc.subr,v 1.9 2010/12/10 21:25:50 robert Exp $
[ -z "${local_rcconf}" ] && . /etc/rc.conf
@@ -9,7 +9,8 @@ rc_err() {
rc_start() {
type rc_pre >/dev/null && rc_pre
- ${daemon} ${daemon_flags} >/dev/null
+ su -c ${_rcclass:-daemon} -s ${_rcshell:-/bin/sh} \
+ ${_rcuser:-root} -c "${daemon} ${daemon_flags}" >/dev/null
}
rc_check() {
@@ -28,6 +29,9 @@ rc_stop() {
rc_cmd() {
_name=`basename $0`
eval _rcflags=\${${_name}_flags}
+ eval _rcuser=\${${_name}_user}
+ eval _rcclass=\${${_name}_class}
+ eval _rcshell=\${${_name}_shell}
[ `id -u` -eq 0 -o X"$1" = "Xcheck" ] || \
rc_err "$0: need root privileges"