rc.subr revision 1.7
1# $OpenBSD: rc.subr,v 1.7 2010/10/28 21:03:33 robert Exp $ 2 3[ -z "${local_rcconf}" ] && . /etc/rc.conf 4 5rc_err() { 6 echo $1 7 exit 1 8} 9 10rc_start() { 11 type rc_pre >/dev/null && rc_pre 12 ${daemon} ${daemon_flags} >/dev/null 13} 14 15rc_check() { 16 pgrep -f "^${pexp}" >/dev/null 17} 18 19rc_reload() { 20 pkill -HUP -f "^${pexp}" 21} 22 23rc_stop() { 24 pkill -f "^${pexp}" 25 type rc_post >/dev/null && rc_post || return 0 26} 27 28rc_cmd() { 29 _name=`basename $0` 30 eval _rcflags=\${${_name}_flags} 31 32 echo $_rcflags 33 exit 34 35 [ `id -u` -eq 0 -o X"$1" = "Xcheck" ] || \ 36 rc_err "$0: need root privileges" 37 [ -n "${daemon}" ] || rc_err "$0: daemon is not set" 38 [ -n "${_rcflags}" ] && daemon_flags=${_rcflags} 39 [ -n "${pexp}" ] || pexp="${daemon}${daemon_flags:+ ${daemon_flags}}" 40 41 case "$1" in 42 check) 43 rc_check 44 ;; 45 start) 46 rc_check || rc_start 47 ;; 48 stop) 49 rc_stop 50 ;; 51 reload) 52 rc_check && rc_reload 53 ;; 54 restart) 55 rc_stop 56 while rc_check; do 57 sleep 1 58 done 59 rc_start 60 ;; 61 *) 62 rc_err "usage: $0 {start|check|reload|restart|stop}" 63 esac 64} 65