Message ID | 20161102205029.880-1-rkrcmar@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Nov 02, 2016 at 09:50:29PM +0100, Radim Krčmář wrote: > Not doing so hid stderr output when the test was stuck and subsequently > killed with ^C. > > Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> > --- > scripts/arch-run.bash | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash > index 8e75c6ed6e17..326f59484e2b 100644 > --- a/scripts/arch-run.bash > +++ b/scripts/arch-run.bash > @@ -30,12 +30,11 @@ run_qemu () > > # stdout to {stdout}, stderr to $errors > exec {stdout}>&1 > - errors=$("${@}" 2>&1 1>&${stdout}) > + errors=$("${@}" 2> >(tee >(cat) >&2) 1>&${stdout}) Lovely... The comment above could have been changed to # ... stderr to stdout and $errors > ret=$? > exec {stdout}>&- > > if [ "$errors" ]; then > - printf "%s\n" "$errors" >&2 > sig=$(grep 'terminating on signal' <<<"$errors") > if [ "$sig" ]; then > sig=$(sed 's/.*terminating on signal \([0-9][0-9]*\).*/\1/' <<<"$sig") > -- > 2.10.1 Reviewed-by: Andrew Jones <drjones@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 02/11/2016 22:05, Andrew Jones wrote: > On Wed, Nov 02, 2016 at 09:50:29PM +0100, Radim Krčmář wrote: >> Not doing so hid stderr output when the test was stuck and subsequently >> killed with ^C. >> >> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> >> --- >> scripts/arch-run.bash | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash >> index 8e75c6ed6e17..326f59484e2b 100644 >> --- a/scripts/arch-run.bash >> +++ b/scripts/arch-run.bash >> @@ -30,12 +30,11 @@ run_qemu () >> >> # stdout to {stdout}, stderr to $errors >> exec {stdout}>&1 >> - errors=$("${@}" 2>&1 1>&${stdout}) >> + errors=$("${@}" 2> >(tee >(cat) >&2) 1>&${stdout}) What about: # preserve stdout and stderr output, but save stderr to $errors exec {stdout}>&1 {stderr}>&2 errors=$("$@" 2> >(tee /dev/fd/$stderr) > /dev/fd/$stdout) exec {stdout}>&- {stderr}>&- (Tested in the shell but not in arch-run.bash). Paolo > > Lovely... > > The comment above could have been changed to > > # ... stderr to stdout and $errors > >> ret=$? >> exec {stdout}>&- >> >> if [ "$errors" ]; then >> - printf "%s\n" "$errors" >&2 >> sig=$(grep 'terminating on signal' <<<"$errors") >> if [ "$sig" ]; then >> sig=$(sed 's/.*terminating on signal \([0-9][0-9]*\).*/\1/' <<<"$sig") >> -- >> 2.10.1 > > Reviewed-by: Andrew Jones <drjones@redhat.com> > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2016-11-03 13:38+0100, Paolo Bonzini: > On 02/11/2016 22:05, Andrew Jones wrote: >> On Wed, Nov 02, 2016 at 09:50:29PM +0100, Radim Krčmář wrote: >>> Not doing so hid stderr output when the test was stuck and subsequently >>> killed with ^C. >>> >>> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> >>> --- >>> scripts/arch-run.bash | 3 +-- >>> 1 file changed, 1 insertion(+), 2 deletions(-) >>> >>> diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash >>> index 8e75c6ed6e17..326f59484e2b 100644 >>> --- a/scripts/arch-run.bash >>> +++ b/scripts/arch-run.bash >>> @@ -30,12 +30,11 @@ run_qemu () >>> >>> # stdout to {stdout}, stderr to $errors >>> exec {stdout}>&1 >>> - errors=$("${@}" 2>&1 1>&${stdout}) >>> + errors=$("${@}" 2> >(tee >(cat) >&2) 1>&${stdout}) > > What about: > > # preserve stdout and stderr output, but save stderr to $errors > exec {stdout}>&1 {stderr}>&2 > errors=$("$@" 2> >(tee /dev/fd/$stderr) > /dev/fd/$stdout) > exec {stdout}>&- {stderr}>&- > > (Tested in the shell but not in arch-run.bash). Using files looks nicer, but is there a problem in the redirection? I would rather use /dev/stderr or /dev/fd/2 directly if not. i.e. exec {stdout}>&1 errors=$("$@" 2> >(tee /dev/stderr) > /dev/fd/$stdout) exec {stdout}>&- -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/11/2016 13:53, Radim Krčmář wrote: > 2016-11-03 13:38+0100, Paolo Bonzini: >> On 02/11/2016 22:05, Andrew Jones wrote: >>> On Wed, Nov 02, 2016 at 09:50:29PM +0100, Radim Krčmář wrote: >>>> Not doing so hid stderr output when the test was stuck and subsequently >>>> killed with ^C. >>>> >>>> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> >>>> --- >>>> scripts/arch-run.bash | 3 +-- >>>> 1 file changed, 1 insertion(+), 2 deletions(-) >>>> >>>> diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash >>>> index 8e75c6ed6e17..326f59484e2b 100644 >>>> --- a/scripts/arch-run.bash >>>> +++ b/scripts/arch-run.bash >>>> @@ -30,12 +30,11 @@ run_qemu () >>>> >>>> # stdout to {stdout}, stderr to $errors >>>> exec {stdout}>&1 >>>> - errors=$("${@}" 2>&1 1>&${stdout}) >>>> + errors=$("${@}" 2> >(tee >(cat) >&2) 1>&${stdout}) >> >> What about: >> >> # preserve stdout and stderr output, but save stderr to $errors >> exec {stdout}>&1 {stderr}>&2 >> errors=$("$@" 2> >(tee /dev/fd/$stderr) > /dev/fd/$stdout) >> exec {stdout}>&- {stderr}>&- >> >> (Tested in the shell but not in arch-run.bash). > > Using files looks nicer, but is there a problem in the redirection? > I would rather use /dev/stderr or /dev/fd/2 directly if not. > > i.e. > exec {stdout}>&1 > errors=$("$@" 2> >(tee /dev/stderr) > /dev/fd/$stdout) > exec {stdout}>&- Yes, this works too. Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash index 8e75c6ed6e17..326f59484e2b 100644 --- a/scripts/arch-run.bash +++ b/scripts/arch-run.bash @@ -30,12 +30,11 @@ run_qemu () # stdout to {stdout}, stderr to $errors exec {stdout}>&1 - errors=$("${@}" 2>&1 1>&${stdout}) + errors=$("${@}" 2> >(tee >(cat) >&2) 1>&${stdout}) ret=$? exec {stdout}>&- if [ "$errors" ]; then - printf "%s\n" "$errors" >&2 sig=$(grep 'terminating on signal' <<<"$errors") if [ "$sig" ]; then sig=$(sed 's/.*terminating on signal \([0-9][0-9]*\).*/\1/' <<<"$sig")
Not doing so hid stderr output when the test was stuck and subsequently killed with ^C. Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> --- scripts/arch-run.bash | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)