Skip to content

Commit

Permalink
implement additional rc scripting start, fix for #94
Browse files Browse the repository at this point in the history
uses a more standard approach to startup daemons via the rc.d system.

To enable, place a file for your service in /etc/rc.conf.d/ and set the enable variable to YES ( for example squid_enable=YES )
  • Loading branch information
AdSchellevis committed Mar 31, 2015
1 parent 353b07b commit f290b78
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/etc/rc
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,9 @@ echo -n "Starting CRON... "
cd /tmp && /usr/sbin/cron -s 2>/dev/null
echo "done."

# starting standard rc scripts
/usr/local/etc/rc.opnsense start

# Start ping handler every 240 seconds
/usr/local/bin/minicron 240 /var/run/ping_hosts.pid /usr/local/bin/ping_hosts.sh

Expand Down
28 changes: 28 additions & 0 deletions src/etc/rc.opnsense
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh

# check which services to enable
. /etc/rc.conf
for rc_conf in /etc/rc.conf.d/*;
do
. $rc_conf
done

# probe all deamons in /usr/local/etc/rc.d/
ls /usr/local/etc/rc.d/* | while read rc_filename
do
# echo $rc_filename
# 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
$rc_filename $1
fi
done


0 comments on commit f290b78

Please sign in to comment.