擅长:python、mysql、java
<blockquote>
<p>signal is not Windows compatible.</p>
</blockquote>
<p>您可以在Windows上发送一些<em>信号,例如:</p>
<pre><code>os.kill(os.getpid(), signal.CTRL_C_EVENT) # send Ctrl+C to itself
</code></pre>
<p>以后可以使用<code>threading.Timer</code>调用函数:</p>
^{pr2}$
<p>其中<code>kill_yourself_now()</code>:</p>
<pre><code>import os
import signal
import sys
def kill_yourself_now():
sig = signal.CTRL_C_EVENT if sys.platform == 'win32' else signal.SIGINT
os.kill(os.getpid(), sig) # raise KeyboardInterrupt in the main thread
</code></pre>
<p>如果脚本启动其他进程,请参阅:<a href="https://stackoverflow.com/q/23434842/4279">how to kill child process(es) when parent dies?</a>另请参阅,<a href="https://stackoverflow.com/q/4789837/4279">How to terminate a python subprocess launched with shell=True</a>它演示了如何终止进程树。在</p>