From 2e3fba57929fff88fdbc5ed3ba7e26e1c54a6fae Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 21 Nov 2016 17:49:34 +0000 Subject: [PATCH] integrate-distro.sh: Trying to find and kill processes blocking chroot unmount Signed-off-by: Jan Lindemann --- scripts/integrate-distro.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/integrate-distro.sh b/scripts/integrate-distro.sh index 20d5a0b4..b6af081e 100644 --- a/scripts/integrate-distro.sh +++ b/scripts/integrate-distro.sh @@ -818,12 +818,26 @@ mount_devices() } } +kill_chroot_processes() +{ + local pids=`ls -l /proc/*/root | grep $root | sed "s%.* /proc/\([0-9]\+\)/.*%\1%"` + local wait + local p + for p in $pids; do + echo "killing process $pid (`strings /proc/$p/cmdline | sed ':a;N;$!ba;s/\n/ /g'`)" + kill $p + wait=1 + done + [ wait = 1 ] && sleep 1 +} + unmount_devices() { local devices="$ssh_auth_sock /srv/ftp /proc/fs/nfsd /proc /sys /dev /boot /" [ "$1" ] && devices="$@" local sync=/usr/bin/sync [ -x $root/$sync ] || sync="" + kill_chroot_processes local d for d in $devices; do check_mount $d && {