summaryrefslogtreecommitdiffstats
path: root/fish/guestfish.pod
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-10-07 19:20:36 +0100
committerRichard W.M. Jones <rjones@redhat.com>2011-10-07 19:20:36 +0100
commit3a546663655abfcd6399d4fdb7febc6b0d83b822 (patch)
tree1f927e83649108b27ca47561f5c6c6cf2afa57a1 /fish/guestfish.pod
parentdf711241fff32036acbc3fae10486816cbdd8ef9 (diff)
downloadlibguestfs-3a546663655abfcd6399d4fdb7febc6b0d83b822.tar.gz
libguestfs-3a546663655abfcd6399d4fdb7febc6b0d83b822.tar.xz
libguestfs-3a546663655abfcd6399d4fdb7febc6b0d83b822.zip
fish: Add man page section on calling guestfish remote robustly from bash.
Diffstat (limited to 'fish/guestfish.pod')
-rw-r--r--fish/guestfish.pod32
1 files changed, 32 insertions, 0 deletions
diff --git a/fish/guestfish.pod b/fish/guestfish.pod
index 032e6441..696d3b3f 100644
--- a/fish/guestfish.pod
+++ b/fish/guestfish.pod
@@ -973,6 +973,38 @@ 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