2013-04-23 3 views
13

Возможно ли запустить несколько длинных задач в ноутбуке IPython, закрыть браузер, а затем через некоторое время открыть его и показать результаты этих задач?Запуск некоторых задач в ноутбуке IPython в автономном режиме

Скажем, задача, как это:

def f(): 
    import time 
    time.sleep(100) 
    with open("result.txt", "w") as fh: 
     fh.write("Done.") 

Если я запускаю задачу нормально, и браузер до завершения, я открываю его обратно, я не вижу 'result.txt'.

Если я запустил его с помощью %px магии или параллельного выполнения - снова нет результата, если я закрою браузер до завершения.

Доступны любые расширения или хаки? Или я чего-то не хватает?

UPDATE 1:

Хотя есть background jobs control support in IPython, фоновые задания устаревают после я отключаю браузер. Единственное, что я мог придумать выпускает %connect_info перед закрытием браузера, а затем соединить с клеммой экрана с помощью

ipython console --existing <ID>.json 

и запустить свои рабочие места оттуда.

UPDATE 2:

Еще более полезным хак сочетание ipython console и управления заданиями. То есть Я открываю консоль и присоединяюсь к тому же сеансу при запуске фонового задания в браузере, а затем я могу закрыть его, пока работа не будет завершена.

UPDATE 3:

, кажется, работает с версии IPython 1.0dev без каких-либо хаков. вы просто запускаете то, что хотите, закройте браузер и он все еще работает.

ответ

2

Обычно я использую экран командной строки linux, который открывает другую оболочку, которая может работать в фоновом режиме.

Например, когда вы впервые входите в свою оболочку, вы вводите «экран». Затем он дает вам новый терминал. Запустите ipython с указанной выше командой. После его запуска на клавиатуре нажмите CTRL + A CTRL + D. Затем программа запускается в фоновом режиме, и вы можете закрыть терминал. Если вы хотите вернуться к нему, введите «screen -r» в командной строке.

+0

Стефан, может быть, я не был ясен, но я спрашиваю о ноутбуке iPython, который является консолью на базе браузера. И я не нашел способ использовать консольные браузеры для доступа к iPython из-под экрана. – Anaderi

+0

Мой плохой. Не подскажешь. – Stephan

1

Я не знаю, является ли это новым в IPython 1.0, но в моем ноутбуке IPython, если я вызываю вашу функцию f() и закрываю браузер, ядро ​​работает в фоновом режиме и через некоторое время (я изменил на time.sleep(10)) Я вижу созданный файл results.txt. Я не думаю, что ядро, которое вы обычно запускаете в консоли, останавливается при закрытии окна браузера. Дайте мне знать, если я ошибаюсь.

+0

действительно работает в IPython с 1.0dev – Anaderi

Смежные вопросы