fish: docs: note how to clean up the remote process properly.
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 13 Oct 2011 10:56:52 +0000 (11:56 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 13 Oct 2011 14:25:13 +0000 (15:25 +0100)
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.

clone/virt-sysprep.in
fish/guestfish.pod

index b6c8a40..792282c 100644 (file)
@@ -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)
index 022e03e..8190969 100644 (file)
@@ -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