From 62625d0ca006153169efc3378ad2d30c30e12612 Mon Sep 17 00:00:00 2001 From: Scott Garman Date: Tue, 28 Sep 2010 18:58:33 -0700 Subject: poky-qemu-internal: use lockfile-progs for network interface locking The 'lockfile' utility originally used comes from the procmail package, which users shouldn't have to install. This uses the more general lockfile-progs utilities to acheive the same end. This fixes [BUGID #389] Signed-off-by: Scott Garman --- scripts/poky-qemu-internal | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'scripts') diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal index c65e0f1de2..c3720d9ce2 100755 --- a/scripts/poky-qemu-internal +++ b/scripts/poky-qemu-internal @@ -55,6 +55,13 @@ QEMUIFDOWN=`which poky-qemu-ifdown` NFSRUNNING="false" +LOCKUTIL=`which lockfile-create` +if [ -z "$LOCKUTIL" ]; then + echo "Error: Unable to find the lockfile-create utility" + echo "On Ubuntu systems this is included in the lockfile-progs package" + return +fi + LOCKDIR="/tmp/qemu-tap-locks" [ ! -d "$LOCKDIR" ] && mkdir $LOCKDIR @@ -63,10 +70,14 @@ TAP="" LOCKFILE="" for tap in $POSSIBLE; do LOCKFILE="$LOCKDIR/$tap" - if lockfile -2 -r 1 $LOCKFILE; then + echo "Acquiring lockfile for $tap..." + if lockfile-create --use-pid -r 1 $LOCKFILE; then + # the --use-pid option to lockfile-create will give use + # the subshell's pid, so override it with the shell's pid: + echo $$ > $LOCKFILE.lock TAP=$tap - break; - fi + break + fi done if [ "$TAP" = "" ]; then @@ -79,7 +90,11 @@ if [ "$TAP" = "" ]; then return fi LOCKFILE="$LOCKDIR/$tap" - if lockfile $LOCKFILE; then + echo "Acquiring lockfile for $tap..." + if lockfile-create --use-pid -r 1 $LOCKFILE; then + # the --use-pid option to lockfile-create will give us + # the subshell's pid, so override it with the shell's pid: + echo $$ > $LOCKFILE.lock TAP=$tap fi else @@ -91,7 +106,7 @@ release_lock() { $QEMUIFDOWN $TAP $POKY_NATIVE_SYSROOT else echo "Releasing lockfile of preconfigured tap device '$TAP'" - rm -f $LOCKFILE + lockfile-remove $LOCKFILE fi if [ "$NFSRUNNING" = "true" ]; then -- cgit 1.2.3-korg