New tool: virt-sysprep: system preparation for guests.
[libguestfs.git] / fish / guestfish.pod
index 74d222f..022e03e 100644 (file)
@@ -973,6 +973,49 @@ user ID of the process, and C<$PID> is the process ID of the server.
 
 Guestfish client and server versions must match exactly.
 
+=head2 USING REMOTE CONTROL ROBUSTLY FROM SHELL SCRIPTS
+
+From Bash, you can use the following code which creates a guestfish
+instance, correctly quotes the command line, handles failure to start,
+and cleans up guestfish when the script exits:
+
+ #!/bin/bash -
+ set -e
+ guestfish[0]="guestfish"
+ guestfish[1]="--listen"
+ guestfish[2]="--ro"
+ guestfish[3]="-a"
+ guestfish[4]="disk.img"
+ GUESTFISH_PID=
+ eval $("${guestfish[@]}")
+ if [ -z "$GUESTFISH_PID" ]; then
+     echo "error: guestfish didn't start up, see error messages above"
+     exit 1
+ fi
+ kill_guestfish ()
+ {
+     kill $GUESTFISH_PID >/dev/null 2>&1 ||:
+ }
+ trap kill_guestfish EXIT
+ guestfish --remote run
+ # etc.
+
+=head2 REMOTE CONTROL RUN COMMAND HANGING
+
+Using the C<run> (or C<launch>) command remotely in a command
+substitution context hangs, ie. don't do (note the backquotes):
+
+ a=`guestfish --remote run`
+
+Since the C<run> command produces no output on stdout, this is not
+useful anyway.  For further information see
+L<https://bugzilla.redhat.com/show_bug.cgi?id=592910>.
+
 =head1 PREPARED DISK IMAGES
 
 Use the I<-N type> or I<--new type> parameter to select one of a set
@@ -1067,7 +1110,7 @@ This exits guestfish.  You can also use C<^D> key.
 
 @ACTIONS@
 
-=head1 EXIT CODE
+=head1 EXIT STATUS
 
 guestfish returns 0 if the commands completed without error, or
 1 if there was an error.
@@ -1225,6 +1268,7 @@ Any existing file with the same name will be overwritten.
 
 L<guestfs(3)>,
 L<http://libguestfs.org/>,
+L<virt-alignment-scan(1)>,
 L<virt-cat(1)>,
 L<virt-copy-in(1)>,
 L<virt-copy-out(1)>,
@@ -1238,6 +1282,8 @@ L<virt-ls(1)>,
 L<virt-make-fs(1)>,
 L<virt-rescue(1)>,
 L<virt-resize(1)>,
+L<virt-sparsify(1)>,
+L<virt-sysprep(1)>,
 L<virt-tar(1)>,
 L<virt-tar-in(1)>,
 L<virt-tar-out(1)>,