首先,我尝试暂停 youtube-dl 进程,并在需要时使用 bash 恢复它。它没有成功。现在我正在尝试使用 python 暂停和恢复进程。我已经从 Pausing a process? 中获取了指南,现在我的脚本看起来像:
#! /usr/bin/env python3
import psutil
import time
x = [p.info for p in psutil.process_iter(attrs=['pid', 'name']) if 'youtube-dl' in p.info['name']]
mypid=x[0]['pid']
print(mypid)
p = psutil.Process(mypid)
p.suspend()
time.sleep(10)
p.resume()
当我运行上述脚本时,运行 youtube-dl
的终端显示:
zsh: suspended youtube-dl
% jobs
[1] + suspended youtube-dl
我必须转到终端并输入以下命令才能继续该过程:
% fg %1
[1] + continued youtube-dl
如何从脚本恢复进程而不是进入终端并输入命令?
只是为了彻底,如果我运行tail -f ~/.xsession-errors
,并替换
x = [p.info for p in psutil.process_iter(attrs=['pid', 'name']) if 'youtube-dl' in p.info['name']]
与
x = [p.info for p in psutil.process_iter(attrs=['pid', 'name']) if 'tail' in p.info['name']]
然后它按预期暂停并恢复 tail
命令。但是,它不适用于上面提到的 youtube-dl
命令。