diff options
Diffstat (limited to 'rc.d/pounce.in')
-rw-r--r-- | rc.d/pounce.in | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/rc.d/pounce.in b/rc.d/pounce.in new file mode 100644 index 0000000..99ed016 --- /dev/null +++ b/rc.d/pounce.in @@ -0,0 +1,63 @@ +#!/bin/sh + +# PROVIDE: pounce +# REQUIRE: LOGIN +# KEYWORD: shutdown + +. /etc/rc.subr + +name='pounce' +rcvar='pounce_enable' +extra_commands='reload' +sig_reload='USR1' + +load_rc_config "${name}" + +: ${pounce_enable:='NO'} +: ${pounce_chdir:="%%PREFIX%%/etc/${name}"} + +command='/usr/sbin/daemon' +pidprefix="/var/run/${name}" +pidfile="${pidprefix}.pid" +required_dirs=$pounce_chdir + +child_command='%%PREFIX%%/bin/pounce' +child_pidfile="${pidprefix}.child.pid" + +if [ -n "$2" ]; then + profile=$2 + if [ -n "${pounce_profiles}" ]; then + pidfile="${pidprefix}.${profile}.pid" + child_pidfile="${pidprefix}.${profile}.child.pid" + eval pounce_enable="\${pounce_${profile}_enable:-${pounce_enable}}" + eval pounce_flags="\${pounce_${profile}_flags:-${pounce_flags}}" + eval pounce_chdir="\${pounce_${profile}_chdir:-${pounce_chdir}}" + eval pounce_user="\${pounce_${profile}_user:-${pounce_user}}" + else + echo "$0: extra argument ignored" + fi +else + if [ -n "${pounce_profiles}" -a -n "$1" ]; then + for profile in ${pounce_profiles}; do + echo "===> ${name} profile: ${profile}" + %%PREFIX%%/etc/rc.d/${name} "$1" "${profile}" || exit "$?" + done + exit + fi +fi + +child_flags=$pounce_flags +child_user=$pounce_user +unset pounce_flags pounce_user +command_args="\ + -r -P ${pidfile} -p ${child_pidfile} -T ${name}${profile:+/${profile}} \ + ${child_user:+-u ${child_user}} \ + -- ${child_command} ${child_flags}" + +pounce_reload() { + rc_pid=$(check_pidfile "$child_pidfile" "$child_command") + kill "-$sig_reload" "$rc_pid" +} +reload_cmd='pounce_reload' + +run_rc_command "$1" |