Permalink
Browse files

implement additional rc scripting start, fix for #94

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 f290b78c5b240df2e1a2d504a7b433ea83243d3b
Showing with 31 additions and 0 deletions.
  1. +3 −0 src/etc/rc
  2. +28 −0 src/etc/rc.opnsense
View
@@ -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
View
@@ -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.