From: Richard W.M. Jones Date: Thu, 13 Oct 2011 10:56:52 +0000 (+0100) Subject: fish: docs: note how to clean up the remote process properly. X-Git-Tag: 1.13.21~18 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=11be7d8eee16e6249ed2868b5bd552f29508ec02;p=libguestfs.git fish: docs: note how to clean up the remote process properly. Killing it is always a bad idea, because the qemu subprocess will be left hanging around. The best thing is to send the exit command. This also makes the change to virt-sysprep. --- diff --git a/clone/virt-sysprep.in b/clone/virt-sysprep.in index b6c8a40..792282c 100644 --- a/clone/virt-sysprep.in +++ b/clone/virt-sysprep.in @@ -175,16 +175,16 @@ if [ -z "$GUESTFISH_PID" ]; then exit 1 fi +# Helper. +gf="guestfish --remote --" + cleanup () { - kill $GUESTFISH_PID >/dev/null 2>&1 ||: + $gf exit >/dev/null 2>&1 ||: rm -rf "$tmpdir" ||: } trap cleanup EXIT ERR -# Helper. -gf="guestfish --remote --" - # Launch back-end, inspect for operating systems, and get the guest # root disk. root=$($gf inspect-get-roots) diff --git a/fish/guestfish.pod b/fish/guestfish.pod index 022e03e..8190969 100644 --- a/fish/guestfish.pod +++ b/fish/guestfish.pod @@ -996,14 +996,15 @@ and cleans up guestfish when the script exits: exit 1 fi - kill_guestfish () + cleanup_guestfish () { - kill $GUESTFISH_PID >/dev/null 2>&1 ||: + guestfish --remote -- exit >/dev/null 2>&1 ||: } - trap kill_guestfish EXIT + trap cleanup_guestfish EXIT ERR - guestfish --remote run - # etc. + guestfish --remote -- run + + # ... =head2 REMOTE CONTROL RUN COMMAND HANGING