使用shell命令暂停IPython脚本?

时间:2018-01-05 19:07:32

标签: python shell unix ipython

我有一个cpu密集脚本,我在ipython中运行,需要几天才能完成。由于我现在正在使用我的计算机,所以我希望能够使用一些ipython快捷方式(ctrl + c或ctrl + z的行)来暂停此脚本,以暂时恢复完整的计算能力。有什么办法可以做到吗?

我正在Ubuntu 16.04的终端中直接运行IPython。

谢谢!

1 个答案:

答案 0 :(得分:1)

看看杀戮和信号。

假设你在“IPython”中运行了这个

import time
i = 0
while True:
    print('Printing: ', i)
    time.sleep(0.5)
    i += 1

现在打开一个新的终端窗口并输入:

kill -SIGSTOP `pgrep ipython`

如果您检查IPython终端,它已停止打印。

如果输入:

kill -SIGCONT `pgrep ipython`

您的程序将在停止的位置继续。

编辑:请注意 pgrep ipython 周围的字符不是单引号;他们被称为“反叛”。您可以找到如何为系统/键盘布局/等键入它们。

编辑:该命令停止并继续所有IPython进程。实际上,如果要停止/继续特定进程,则必须为其提供PID。将你的程序放在一个文件中并为此设置grep是个好主意。