dbdir='@DBDIR@'
fi
+ovs_ctl_log () {
+ echo "$@" >> "${logdir}/ovs-ctl.log"
+}
+
+stdintoexitstatus () {
+ read exitstatus
+ return $exitstatus
+}
+
ovs_ctl () {
- echo "`date -u`:$@" >> "${logdir}/ovs-ctl.log"
- "${datadir}/scripts/ovs-ctl" "$@" 2>&1 | tee -a "${logdir}/ovs-ctl.log"
+ case "$@" in
+ *"=strace"*)
+ # In case of running the daemon with strace, piping the o/p causes
+ # the script to block (strace probably does not close the inherited
+ # pipe). So, do not log the o/p to ovs-ctl.log.
+ "${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 ; echo $? >&3) \
+ | tee -a "${logdir}/ovs-ctl.log") >&4) 3>&1) | stdintoexitstatus) \
+ 4>&1
+ ;;
+ esac
}
VERSION='@VERSION@'