[ovs-dev] [PATCH v3] ovs-lib: Return the exit status of ovs-ctl in ovs_ctl()
Gurucharan Shetty
shettyg at nicira.com
Wed Oct 2 16:32:25 UTC 2013
From: Duffie Cooley <dcooley at nicira.com>
commit 46528f78e5c(debian, rhel, xenserver: Ability to collect ovs-ctl logs)
made changes in the startup scripts such that the o/p of ovs-ctl is logged
into ovs-ctl.log. But it had an unintended consequence that the exit status
of ovs-ctl was no longer returned. We would always return success(the exit
status of tee).
With this commit, we return the exit status of ovs-ctl instead of tee.
Code referenced from: (line wrapped).
http://unix.stackexchange.com/questions/14270/\
get-exit-status-of-process-thats-piped-to-another/70675#70675)
Signed-off-by: Gurucharan Shetty <gshetty at nicira.com>
Signed-off-by: Duffie Cooley <dcooley at nicira.com>
---
utilities/ovs-lib.in | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
index 1684ddc..0b6f42f 100644
--- a/utilities/ovs-lib.in
+++ b/utilities/ovs-lib.in
@@ -41,6 +41,11 @@ ovs_ctl_log () {
echo "$@" >> "${logdir}/ovs-ctl.log"
}
+stdintoexitstatus () {
+ read exitstatus
+ return $exitstatus
+}
+
ovs_ctl () {
case "$@" in
*"=strace"*)
@@ -50,8 +55,14 @@ ovs_ctl () {
"${datadir}/scripts/ovs-ctl" "$@"
;;
*)
+ # Tee ovs-ctl output to ovs-ctl.log and yield ovs-ctl's exit
+ # status. See (line wrapped)
+ # http://unix.stackexchange.com/questions/14270/\
+ # get-exit-status-of-process-thats-piped-to-another/70675#70675
echo "`date -u`:$@" >> "${logdir}/ovs-ctl.log"
- "${datadir}/scripts/ovs-ctl" "$@" 2>&1 | tee -a "${logdir}/ovs-ctl.log"
+ ( ( ( ( ("${datadir}/scripts/ovs-ctl" "$@" 2>&1 ; echo $? >&3) \
+ | tee -a "${logdir}/ovs-ctl.log") >&4) 3>&1) | stdintoexitstatus) \
+ 4>&1
;;
esac
}
--
1.7.9.5
More information about the dev
mailing list