diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2011-10-07 19:20:36 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2011-10-07 19:20:36 +0100 |
commit | 3a546663655abfcd6399d4fdb7febc6b0d83b822 (patch) | |
tree | 1f927e83649108b27ca47561f5c6c6cf2afa57a1 /fish | |
parent | df711241fff32036acbc3fae10486816cbdd8ef9 (diff) | |
download | libguestfs-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')
-rw-r--r-- | fish/guestfish.pod | 32 |
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 |