For scripts (perl, shell, whatever...), prefix ${pexp} with the script's
interpretor path as defined by the script.
No need to override ${pexp} in the daemon's rc file.
Index: rc.subr
===================================================================
RCS file: /cvs/src/etc/rc.d/rc.subr,v
retrieving revision 1.70
diff -u -r1.70 rc.subr
--- rc.subr 11 Jul 2013 09:34:33 -0000 1.70
+++ rc.subr 16 Sep 2013 10:26:09 -0000
@@ -221,4 +221,9 @@
unset _rcflags _rcuser
pexp="${daemon}${daemon_flags:+ ${daemon_flags}}"
+file ${daemon} | fgrep -q script &&
+{
+ shebang=$(head -n 1 ${daemon} | cut -d! -f2)
+ pexp="${shebang} ${pexp}"
+}
rcexec="su -l -c ${daemon_class} -s /bin/sh ${daemon_user} -c"
e.g. Remove pexp= from /etc/rc.d/greyscanner:
--- greyscanner.pkg Mon Aug 19 14:46:01 2013
+++ greyscanner Mon Sep 16 11:30:33 2013
@@ -6,7 +6,6 @@
. /etc/rc.d/rc.subr
-pexp="/usr/bin/perl ${daemon}"
rc_reload=NO
rc_cmd $1
$ sudo /etc/rc.d/greyscanner restart
greyscanner(ok)
greyscanner(ok)
$ cat /var/run/rc.d/greyscanner
/usr/bin/perl /usr/local/sbin/greyscanner
$ ps auxwww | fgrep greyscanner
root 25280 0.0 0.6 4896 2920 ?? Is 11:35AM 0:00.04 /usr/bin/perl
/usr/local/sbin/greyscanner
Cheers,
--
Craig Skinner | http://twitter.com/Craig_Skinner | http://linkd.in/yGqkv7