暂停一个进程?
有没有办法让一个正在运行的程序暂停,这样它在暂停的时候就不会占用CPU的资源,等到重新启动的时候再继续工作?可以用Python实现,或者用其他Python能接触到的方法。
4 个回答
2
我刚刚用Python实现了这个功能,使用了信号,代码大概是这样的:
def mysignalhandler(sig, frame):
print "Got " + str(sig)
if sig == signal.SIGUSR1:
do_something()
signal.signal(signal.SIGUSR1, mysignalhandler)
signal.pause()
这段代码会在最后一行暂停,当它收到USR1信号时,比如通过一个
kill -USR1 <pid>
命令,就会调用do_something()
这个函数。
不过,这个方法只适用于UNIX系统哦。
22
通过使用 psutil 这个库(你可以在这里找到它:https://github.com/giampaolo/psutil),你可以实现很多功能。
>>> import psutil
>>> somepid = 1023
>>> p = psutil.Process(somepid)
>>> p.suspend()
>>> p.resume()