在另一个终端中运行进程

0 投票
2 回答
1004 浏览
提问于 2025-04-16 16:43

我实际上是在用 Python 程序通过 Popen 启动一个子进程。

proc= subprocess.Popen("xterm -e python script.py", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

当这个进程在 xterm 里运行时,我们可以用 Ctrl+C 来结束它。那么有没有办法用其他信号,比如 Ctrl+Zfg,来暂停和继续这个任务呢?还有一种解决方案是把这个进程放在另一个终端里运行,而不使用 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()

撰写回答