docs: Document that SIGPIPE should not be masked when running virt-what.
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 9 Mar 2011 11:37:35 +0000 (11:37 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 9 Mar 2011 11:37:35 +0000 (11:37 +0000)
virt-what.pod

index 156406e..99547c0 100644 (file)
@@ -179,6 +179,24 @@ whether C<virt-what> managed detection "correctly" (which is basically
 unknowable given the large variety of virtualization systems out there
 and that some systems deliberately emulate others).
 
 unknowable given the large variety of virtualization systems out there
 and that some systems deliberately emulate others).
 
+=head1 RUNNING VIRT-WHAT FROM OTHER PROGRAMS
+
+C<virt-what> is designed so that you can easily run it from
+other programs or wrap it up in a library.
+
+Your program should check the exit status (see the section above).
+
+Some programming languages (notably Python: issue 1652) erroneously
+mask the C<SIGPIPE> signal and do not restore it when executing
+subprocesses.  C<virt-what> is a shell script and some shell commands
+do not work correctly when you do this.  You may see warnings from
+C<virt-what> similar to this:
+
+ echo: write error: Broken pipe
+
+The solution is to set the C<SIGPIPE> signal handler back to C<SIG_DFL>
+before running C<virt-what>.
+
 =head1 IMPORTANT NOTE
 
 Most of the time, using this program is the I<wrong> thing to do.
 =head1 IMPORTANT NOTE
 
 Most of the time, using this program is the I<wrong> thing to do.