diff options
author | Rob Austein <sra@hactrn.net> | 2013-12-17 20:08:03 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2013-12-17 20:08:03 +0000 |
commit | c6fc6fd2c0521d9ad44a62d9ff11065886bb122c (patch) | |
tree | b51721621a8254d2a674359754d144cd295e7513 /rcynic | |
parent | bd56b87c5388bda8516f6fe56d7dde1074902acc (diff) |
Handle subprocess exit codes more gracefully.
svn path=/trunk/; revision=5609
Diffstat (limited to 'rcynic')
-rw-r--r-- | rcynic/rcynic-cron.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/rcynic/rcynic-cron.py b/rcynic/rcynic-cron.py index cadc24d6..d4dd420b 100644 --- a/rcynic/rcynic-cron.py +++ b/rcynic/rcynic-cron.py @@ -55,8 +55,14 @@ def run(*cmd, **kwargs): os._exit(1) else: status = os.waitpid(pid, 0)[1] - if status != 0: - sys.exit("Program %s exited with status %s" % (" ".join(cmd), status)) + if status == 0: + return + elif os.WIFSIGNALED(status): + sys.exit("Process %s exited with signal %s" % (" ".join(cmd), os.WTERMSIG(status))) + elif os.WIFEXITED(status): + sys.exit("Program %s exited with status %s" % (" ".join(cmd), os.WEXITSTATUS(status))) + else: + sys.exit("Program %s exited for unknown reason %s" % (" ".join(cmd), status)) want_chroot = False |