Программа Python снова запускается после пробуждения ПК?

15

Я запускаю программу на Python, выполнение которой занимает несколько часов. Если я закрою крышку своего ноутбука (т.е. уложу ее в сон), запустится ли программа снова, когда я снова открою свой ноутбук? Уже прошло несколько часов, и я должен скоро уйти (поэтому мне нужно закрыть свой ноутбук), но я не хочу начинать процесс заново. Будет ли программа запускаться с той же точки? Какое поведение по умолчанию в Ubuntu 16.04?

Кстати, я запускаю перекрестную проверку для классификатора, который не использует никаких сетевых ресурсов - только процессор и оперативную память.

BourbonCreams
источник

Ответы:

29

Простой ответ - да, но правда немного сложнее.

Да, приложение все еще будет работать; это возобновится с остальными процессами системы. Однако существуют такие состояния, как сетевые подключения и состояния графического драйвера. Они требуют повторной инициализации с помощью внешнего оборудования, и это может означать некоторое дополнительное сетевое время ожидания или даже правильное разъединение-повторное соединение (как это происходит со мной в Ethernet). В особенно плохих ситуациях - за исключением определенных исключений из правила - вся среда рабочего стола может аварийно завершиться и перезапуститься.

Поэтому я не могу гарантировать, что с тобой случится. Если ваше приложение потерпит крах, если оно потеряет сетевое подключение, возможно, возникла проблема. Если он выполняет рендеринг или CUDA / OpenCL, он может сломаться.

Если это просто обычный процессор / диск, все будет хорошо.
Но кто знает наверняка. Компьютеры делают нас всех дураками.
Удачи.

Оли
источник
Вы были правы, моя программа снова запустилась после того, как я открыл свой ноутбук, и в конце концов он заработал, как и ожидалось. OT: Со времени, которое потребовалось для меня (это вернуло 23 часа), как вы думаете, это относится ко времени или просто разнице между временем окончания и временем начала? Или это невозможно сказать?
BourbonCreams
Ты имеешь в виду, что запускал его со timeвстроенным? напр.time ./myscript.py
Оли
Нет, метод, который я использую (cross_validation.cross_val_score) с параметром verbose, установленным в True, печатает с конечной точностью и временем выполнения.
BourbonCreams
«Компьютеры делают нас всех дураками». Это точно!
Пэдди Ландау
6

Когда вы приостанавливаете систему (переводите ее в спящий режим), она сохраняет все свои регистры ЦП и т. Д., Которые представляют то, что она в данный момент делает в вашей ОЗУ, а затем отключает большинство компонентов, кроме тех, которые сохраняют содержимое ОЗУ, и тех, которые необходимы для пробуждения компьютера. позже (устройства ввода и т. д.).

Когда вы снова включите его, предыдущее состояние будет восстановлено, и компьютер продолжит работу именно в том месте, где вы его приостановили.

Это основная концепция, конечно, в действительности происходит больше, потому что все это волшебным образом не случается, когда вы щелкаете пальцами. Существует много системных сценариев и т. Д., Которые запускаются до приостановки и после пробуждения.

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

Byte Commander
источник
2

Если ноутбук переходит в режим сна (= приостановить), безусловно, да. Единственное, что может быть нарушено, это сетевые подключения или аналогичные вещи в режиме реального времени; в этом случае зависит, будет ли запущенная программа написана для принятия временных сбоев и восстановления.

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

Rmano
источник
2

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

atakanyenel
источник
2
Но ваш ноутбук может разрядиться.
кошка