diff options
author | 2010-12-10 21:25:50 +0000 | |
---|---|---|
committer | 2010-12-10 21:25:50 +0000 | |
commit | cf87d08df3bfe972694496a6da2873f9e599ce0f (patch) | |
tree | c0441f48062c841b103076ed3e694b730f2e5461 | |
parent | Rephrase a confusing sentence. (diff) | |
download | wireguard-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.subr | 8 |
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" |