擅长:python、mysql、java
<p>在shell脚本中,有两个选项:</p>
<ul>
<li><code>set -e</code>:所有错误都退出脚本</li>
<li>检查python子命令返回代码,如果非零则中止</li>
</ul>
<p>(这里可能有更多细节:<a href="https://stackoverflow.com/questions/821396/aborting-a-shell-script-if-any-command-returns-a-non-zero-value">Aborting a shell script if any command returns a non-zero value?</a>)</p>
<p>现在,如果不想更改shell脚本的处理方式,可以获取python脚本的父进程并将其杀死:</p>
<pre><code>except Exception as e:
import os,signal,sys
print("Exception: %s" % e)
os.kill(os.getppid(),signal.SIGTERM)
sys.exit(2)
</code></pre>
<p>如果您在windows上需要此功能,但这不起作用(<code>os.kill</code>不存在),您必须调整它以调用<code>taskkill</code>:</p>
^{pr2}$
<p>现在我要说,终止父进程是不好的做法。除非您不控制这个父进程的代码,否则您应该尝试优雅地处理退出。在</p>