#!/bin/sh # check which services to enable if [ -f /etc/rc.conf ]; then . /etc/rc.conf fi for RC_CONF in $(ls /etc/rc.conf.d); do . /etc/rc.conf.d/${RC_CONF} done # probe all deamons in /usr/local/etc/rc.d/ ls /usr/local/etc/rc.d/* /etc/rc.d/* | while read rc_filename; do # read rc scripts and parse name and rcvar variables _file=`basename $rc_filename` eval `/usr/bin/grep "name[[:blank:]]*=" $rc_filename | /usr/bin/head -n 1` eval `grep "rcvar[[:blank:]]*=" $rc_filename | /usr/bin/sed '/^$/d'` # check if service is enabled eval "is_enabled=\$"$rcvar"" # start/stop service if [ "$is_enabled" == "YES" ]; then if [ "$1" == "start" ]; then pre_run_var="`basename $rc_filename`_opnsense_bootup_run" eval "pre_run=\$"$pre_run_var"" if [ ! -z "$pre_run" ]; then eval "$pre_run" fi fi $rc_filename $1 fi done