[one-users] exec_and_log doesn't propagate exit status
Javier Fontan
jfontan at fdi.ucm.es
Mon Aug 24 08:37:31 PDT 2009
Hello,
On Mon, Aug 24, 2009 at 4:59 PM, Sander Klous<sander at nikhef.nl> wrote:
> Hi,
> I think exec_and_log doesn't propagate the exit status of the command it
> executes. Is that true?
> So, if I do:
>
> exec_and_log "ls bla"
> echo $?
>
> I would like to see the exit status of `ls bla`.
> At the moment, I think it just returns -1 on failure.
> Is that right?
You are right, when the command fails it always returns -1 (from tm_common.sh):
--8<------
# Executes a command, if it fails return error message and exits
function exec_and_log
{
output=`$1 2>&1 1>/dev/null`
if [ "x$?" != "x0" ]; then
log_error "Command \"$1\" failed."
log_error "$output"
error_message "$output"
exit -1
fi
log "Executed \"$1\"."
}
------>8--
I think you can modify it to return the command exit code this way:
--8<------
# Executes a command, if it fails return error message and exits
function exec_and_log
{
output=`$1 2>&1 1>/dev/null`
code=$?
if [ "x$code" != "x0" ]; then
log_error "Command \"$1\" failed."
log_error "$output"
error_message "$output"
exit $code
fi
log "Executed \"$1\"."
}
------>8--
Bye
--
Javier Fontan, Grid & Virtualization Technology Engineer/Researcher
DSA Research Group: http://dsa-research.org
Globus GridWay Metascheduler: http://www.GridWay.org
OpenNebula Virtual Infrastructure Engine: http://www.OpenNebula.org
More information about the Users
mailing list