ddns-scripts: refactor stop_section_processes()

Now a single xargs calls instead of grepping ps output (unreliable).

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
Paul Donald
2024-11-30 16:26:27 +01:00
committed by Florian Eckert
parent 91954f4b69
commit 2ab29cc06c

View File

@@ -204,15 +204,14 @@ start_daemon_for_all_ddns_sections()
# stop sections process incl. childs (sleeps) # stop sections process incl. childs (sleeps)
# $1 = section # $1 = section
stop_section_processes() { stop_section_processes() {
local __PID=0 local pid_file
local __PIDFILE="$ddns_rundir/$1.pid" pid_file="$ddns_rundir/$1.pid"
[ $# -ne 1 ] && write_log 12 "Error calling 'stop_section_processes()' - wrong number of parameters" [ $# -ne 1 ] && write_log 12 "Error: 'stop_section_processes()' requires exactly one parameter"
[ -e "$__PIDFILE" ] && { [ -e "$pid_file" ] && {
__PID=$(cat $__PIDFILE) xargs kill < "$pid_file" 2>/dev/null && return 1
busybox ps | grep "^[\t ]*$__PID" >/dev/null 2>&1 && kill $__PID || __PID=0 # terminate it
} }
[ $__PID -eq 0 ] # report if process was running return 0 # nothing killed
} }
# stop updater script for all defines sections or only for one given # stop updater script for all defines sections or only for one given