From e5df215b53834fca38c821cf2d7b86b231a47220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Hertzog?= Date: Fri, 20 Nov 2015 18:20:29 +0100 Subject: [PATCH] Improve the wait script to use latest feature of kali-menu --- kali-config/common/hooks/sleep.chroot | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/kali-config/common/hooks/sleep.chroot b/kali-config/common/hooks/sleep.chroot index 8e0dc89..3ba3a76 100755 --- a/kali-config/common/hooks/sleep.chroot +++ b/kali-config/common/hooks/sleep.chroot @@ -1,7 +1,22 @@ -#!/bin/bash +#!/bin/sh -# Sleep until update-kali-menu disappeared -while pgrep -f update-kali-menu >/dev/null; do - echo "Sleeping 10 seconds as update-kali-menu is still running..." - sleep 10 -done +kali_menu_version=$(dpkg-query -W -f'${Version}\n' kali-menu) +kali_menu_pidfile="/var/lock/kali-menu" + +# Wait until update-kali-menu is over +if dpkg --compare-versions "$kali_menu_version" ge 2015.3.0; then + # This version puts the PID in its lock file + if [ -s $kali_menu_pidfile ]; then + pid=$(cat $kali_menu_pidfile) + while [ -n "$pid" ] && [ -e /proc/$pid ]; do + echo "Sleeping 10 seconds as update-kali-menu is still running (pid $pid)..." + sleep 10 + done + fi +else + # This version lacks PID info, we match on process name instead + while pgrep -f update-kali-menu >/dev/null; do + echo "Sleeping 10 seconds as update-kali-menu is still running..." + sleep 10 + done +fi