From 91144160e1770d07994670b8b97274d1f96ed05f 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. (From OE-Core rev: 04de384256ad321834cf5e3dbb9a8d3ea2ab66c2) Signed-off-by: Richard Purdie --- meta/recipes-core/busybox/files/syslog | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'meta/recipes-core/busybox') 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 v1.2.3-54-g00ecf