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 <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2019-06-26 14:01:33 +01:00
parent a06a47af30
commit 91144160e1

View File

@@ -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
;;
*)