From: Richard Purdie Date: Wed, 26 Jun 2019 13:01:33 +0000 (+0100) Subject: busybox: Improve syslog restart handling X-Git-Tag: uninative-2.7~935 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=04de384256ad321834cf5e3dbb9a8d3ea2ab66c2;p=openembedded-core.git 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 --- 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 ;; *)