From 04de384256ad321834cf5e3dbb9a8d3ea2ab66c2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 26 Jun 2019 14:01:33 +0100 Subject: busybox: Improve syslog restart handling We're seeing races on the autobuilder where syslogd fails to shut down fast enough to be restarted leading to failures. Add some checks to ensure when restarting that processes exit before being restarted. Signed-off-by: Richard Purdie --- meta/recipes-core/busybox/files/syslog | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/meta/recipes-core/busybox/files/syslog b/meta/recipes-core/busybox/files/syslog index 89c4d12e9c..49033c1755 100644 --- a/meta/recipes-core/busybox/files/syslog +++ b/meta/recipes-core/busybox/files/syslog @@ -51,6 +51,22 @@ else SYSLOG_ARGS="-C" fi +waitpid () +{ + pid=$1 + # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals + if [ -z "$pid" ]; then + return + fi + timeout=5; + while [ $timeout -gt 0 ] + do + timeout=$(( $timeout-1 )) + kill -0 $pid 2> /dev/null || break + sleep 1 + done +} + case "$1" in start) echo -n "Starting syslogd/klogd: " @@ -65,7 +81,11 @@ case "$1" in echo "done" ;; restart) - $0 stop + pid1=`pidof syslogd` + pid2=`pidof syslogd` + $0 stop + waitpid $pid1 + waitpid $pid2 $0 start ;; *) -- cgit 1.2.3-korg