summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-10-27 01:22:30 -0400
committerJune McEnroe <june@causal.agency>2019-10-27 01:22:30 -0400
commit4bd6eca3644642ff20d48d38c250d7ab1a62ec78 (patch)
tree60cc2f1de94faa5c70ea84042d7e75facbe4bb30
parentReload certificate on SIGUSR1 (diff)
downloadpounce-4bd6eca3644642ff20d48d38c250d7ab1a62ec78.tar.gz
pounce-4bd6eca3644642ff20d48d38c250d7ab1a62ec78.zip
Add reload cmd to rc script
Using daemon(8) makes this way more awkward than it should be.
Diffstat (limited to '')
-rw-r--r--rc.pounce23
1 files changed, 17 insertions, 6 deletions
diff --git a/rc.pounce b/rc.pounce
index bf95504..599c585 100644
--- a/rc.pounce
+++ b/rc.pounce
@@ -8,20 +8,25 @@
 
 name='pounce'
 rcvar='pounce_enable'
+extra_commands='reload'
+sig_reload='USR1'
 
 load_rc_config "${name}"
 
 : ${pounce_enable:="NO"}
 
-_command='/usr/local/bin/pounce'
 command='/usr/sbin/daemon'
 pidprefix="/var/run/${name}"
 pidfile="${pidprefix}.pid"
 
+child_command='/usr/local/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_user="\${pounce_${profile}_user:-${pounce_user}}"
@@ -38,12 +43,18 @@ else
 	fi
 fi
 
-_pounce_flags=$pounce_flags
-_pounce_user=$pounce_user
+child_flags=$pounce_flags
+child_user=$pounce_user
 unset pounce_flags pounce_user
 command_args="\
-	-r -P ${pidfile} -T ${name}${profile:+/${profile}} \
-	${_pounce_user:+-u ${_pounce_user}} \
-	-- ${_command} ${_pounce_flags}"
+	-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"