Программа Python запускается снова после того, как компьютер просыпается?

15

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

Fyi, я выполняю кросс-проверку для классификатора, который не использует никаких сетевых ресурсов - только ЦП и ОЗУ.

    
задан BourbonCreams 27.01.2017 в 11:03
источник

4 ответа

29

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

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

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

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

    
ответ дан Oli 27.01.2017 в 11:11
источник
6

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

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

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

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

    
ответ дан Byte Commander 27.01.2017 в 11:12
2

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

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

    
ответ дан Rmano 27.01.2017 в 11:11
2

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

    
ответ дан atayenel 27.01.2017 в 23:15