在另一个终端中运行进程
我实际上是在用 Python 程序通过 Popen 启动一个子进程。
proc= subprocess.Popen("xterm -e python script.py", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
当这个进程在 xterm 里运行时,我们可以用 Ctrl+C
来结束它。那么有没有办法用其他信号,比如 Ctrl+Z
和 fg
,来暂停和继续这个任务呢?还有一种解决方案是把这个进程放在另一个终端里运行,而不使用 xterm -e
,这样可以吗?如果有其他的解决办法也很有帮助。谢谢!
2 个回答
0
使用Python2.6及以上版本
# send ctrl+c
popen.send_signal(signal.SIGINT)
1
你可以通过编程的方式来实现这个功能,使用一个叫做 psutil 的库。
import psutil
p = psutil.Pocesss(proc.pid)
p.suspend()
p.resume()