擅长:python、mysql、java
<p>我们终于找到了一个简单的方法来使用Python警报和信号处理程序:<a href="http://docs.python.org/library/signal.html#example" rel="nofollow">http://docs.python.org/library/signal.html#example</a></p>
<p>编辑:</p>
<p>想法如下:</p>
<pre><code>import string, time, sys, signal
class Host:
# (...)
def timeout_handler(self, sig_code, frame):
if 14 == sig_code: sig_code = 'SIGALRM'
print time.strftime('%F %T -'), 'Signal handler called with signal:', sig_code
raise Exception('Timeout!')
def libVirtConnect(self):
try:
# Enable the timeout with an alarm:
signal.signal(signal.SIGALRM, self.timeout_handler)
signal.alarm(self._libvirt_timeout_in_seconds)
self._virt_conn = libvirt.open('xen+tcp://'+self._ip)
signal.alarm(0) # Disable the alarm
except Exception, e:
signal.alarm(0) # Disable the alarm
</code></pre>