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


15

Я запускаю програму python, на виконання якої потрібно кілька годин. Якщо я закрию кришку свого ноутбука (тобто я кладу його спати), програма запуститься знову, коли я знову відкрию свій ноутбук? Минуло вже кілька годин, і мені доведеться незабаром піти (тому мені потрібно закрити ноутбук), але я не хочу запускати процес заново. Чи розпочнеться програма з точно тієї ж точки? Яка поведінка за замовчуванням в Ubuntu 16.04?

Fyi, я запускаю перехресну перевірку класифікатора, який не використовує жодних мережевих ресурсів - лише процесор і оперативну пам'ять.

Відповіді:


29

Проста відповідь - так, але правда трохи складніше.

Так, програма все ще буде запущена; він відновиться з іншими процесами системи. Однак є великі речі, такі як мережеві з'єднання та графічні драйвери. Вони потребують повторної ініціалізації із зовнішнім апаратним забезпеченням, що може означати деяку додаткову затримку мережі для початку або навіть належне відключення-повторне підключення (як це трапляється зі мною на Ethernet). У особливо поганих ситуаціях - на певні винятки з правила - все середовище робочого столу може вийти з ладу та перезапуститись.

Тому я не можу гарантувати, що з вами станеться. Якщо ваша програма вийде з ладу, якщо вона втратить мережне підключення, може виникнути проблема. Якщо він робить візуалізацію або CUDA / OpenCL, він може зламатися.

Якщо це просто звичайний CPU / диск, це має бути добре.
Але хто точно знає. Комп'ютери нас дурять усіх.
Удачі.


Ви мали рацію, моя програма запустилася знову після того, як я відкрив ноутбук, і він врешті-решт закінчився, як очікувалося. ОТ: З моменту, коли це знадобилося мені (він повернувся 23 години), чи вважаєте ви, що це стосується часу, що минув, або просто різниці між часом закінчення і початком? Або це неможливо сказати?
BourbonCreams

Ти маєш на увазі, що ти запустив його з timeвбудованим? напр.time ./myscript.py
Олі

Ні, метод, який я використовую (cross_validation.cross_val_score) з верболозом параметра, встановленим на True, друкується в кінці точності та часу виконання.
BourbonCreams

"Комп'ютери нас з усіх дурять". Такий справжній!
Падді Ландау

6

Якщо ви призупиняєте систему (увімкнете її), вона зберігає всі її регістри процесора тощо, які представляють, що вона зараз робить у вашій оперативній пам’яті, а потім вимикає більшість компонентів, крім тих, що зберігають вміст оперативної пам’яті та ті, які потрібні для пробудження комп'ютера. знову пізніше (пристрої введення тощо).

Коли ви знову його прокинетеся, попередній стан відновлюється, і комп'ютер продовжується точно в тому місці, де ви його призупинили.

Це головна концепція, звичайно, насправді буває більше, тому що все це не відбувається магічним чином при обривці пальців. Існує багато системних сценаріїв тощо, які запускаються перед тим, як призупинити та після пробудження.

Однак, якщо ви вручну не встановите щось для цього, призупинення роботи комп'ютера ніколи не закриє жодних запущених програм. Є невеликий ризик, що щось вийде з ладу в процесі, але зазвичай, якщо воно працювало один раз, воно працює завжди.


2

Якщо ноутбук лягає спати (= призупинити), обов'язково так. Єдине, що може бути порушено - це мережеві з'єднання або подібні речі в реальному часі; у такому випадку це залежить від того, чи безпечно написана запущена програма прийняти тимчасові збої та відновити.

Якщо ноутбук вимкнеться , безумовно, немає, десь на панелі управління є можливість вирішити між двома способами поведінки, я думаю.


2

Якщо ви хочете бути впевнені, ви можете вибрати комп'ютер, щоб нічого не робити, коли кришка закрита, з параметрів живлення на панелі керування. Це означає, що закривання чи відкривання кришки не вплине на стан вашого комп'ютера. Таким чином гарантується, що будь-яка програма буде працювати безперебійно.


2
Але у вашого ноутбука може не вистачати акумулятора.
кіт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.