Я написав програму в IDLE для токенізації текстових файлів, і вона починає токенізувати 349 текстових файлів! Як я можу це зупинити? Як я можу зупинити запущену програму Python?
Я написав програму в IDLE для токенізації текстових файлів, і вона починає токенізувати 349 текстових файлів! Як я можу це зупинити? Як я можу зупинити запущену програму Python?
Відповіді:
Щоб зупинити програму, просто натисніть Control + C.
^Cв терміналі, а системний монітор показав, що python все ще використовує багато процесора ...
Ctrl + Z(принаймні в Linux). Потім, якщо ви хочете його вбити, запустіть, kill %nде "n" - це число, яке ви отримали поруч із "Зупинено" при натисканні Ctrl + Z. Якщо ви хочете відновити його, запустіть fg.
Ви також можете це зробити, якщо використовуєте exit()функцію у своєму коді. В ідеалі ви можете це зробити sys.exit(). sys.exit()що може завершити роботу Python, навіть якщо ви паралельно запускаєте речі через multiprocessingпакет.
Примітка: Для того, щоб використовувати sys.exit(), ви повинні імпортувати його:import sys
sys.exit(1)процес не зупиняється. В основному у мене кілька потоків, і кожен з них блокує зовнішні процеси, запущені Popen. Мені потрібен ядерний варіант, щоб знищити всі підпроцеси, створені процесом Python, а також сам процес Python. Не знайшов поки.
Якщо ваша програма працює на інтерактивній консолі, натискання CTRL+ Cвикликає KeyboardInterruptвиняток у основному потоці.
Якщо ваша програма Python його не вловлює, це KeyboardInterruptпризведе до виходу Python. Однак except KeyboardInterrupt:блок, або щось на зразок голого except:, буде заважати цьому механізму фактично зупиняти запуск сценарію.
Іноді, якщо KeyboardInterruptне працює, SIGBREAKзамість цього можна надіслати сигнал; у Windows, CTRL+ Pause/Breakможе оброблятися інтерпретатором без генерування вловлюваного KeyboardInterruptвинятку.
Однак ці механізми в основному працюють, лише якщо інтерпретатор Python працює і реагує на події операційної системи. Якщо інтерпретатор Python не реагує з якихось причин, найефективнішим способом є припинення всього процесу операційної системи, на якому запущений інтерпретатор. Механізм цього залежить від операційної системи.
У середовищі оболонки в стилі Unix ви можете натиснути CTRL+, Zщоб призупинити будь-який процес, який зараз контролює консоль. Після того, як ви отримаєте підказку оболонки назад, ви можете використовувати jobsдля переліку припинених завдань, і ви можете вбити перше призупинене завдання за допомогою kill %1. (Якщо ви хочете знову запустити його, ви можете продовжити роботу на передньому плані, використовуючи fg %1; для отримання додаткової інформації прочитайте посібник вашої оболонки з управління завданнями.)
Крім того, в Unix або Unix-подібному середовищі ви можете знайти PID процесу Python (ідентифікатор процесу) і вбити його за допомогою PID. Використовуйте щось на зразок, ps aux | grep pythonщоб знайти, які процеси Python запущені, а потім використовуйте kill <pid>для надсилання SIGTERMсигналу.
killКоманда на Unix відправляє SIGTERMза замовчуванням, і програма Python може встановити обробник сигналу для SIGTERMвикористання signalмодуля. Теоретично, будь-який обробник сигналу SIGTERMповинен витончено вимкнути процес. Але іноді, якщо процес застряг (наприклад, заблокований у режимі безперебійного вводу-виводу), SIGTERMсигнал не має ефекту, оскільки процес навіть не може прокинутися, щоб його обробити.
Щоб примусово вбити процес, який не реагує на сигнали, вам потрібно надіслати SIGKILLсигнал, який іноді називають так, kill -9оскільки 9це числове значення SIGKILLконстанти. За допомогою командного рядка ви можете скористатися kill -KILL <pid>(або kill -9 <pid>коротше) для надсилання SIGKILLта негайного зупинення запущеного процесу.
У Windows у вас немає системи процесорних сигналів Unix, але ви можете примусово припинити запущений процес, використовуючи TerminateProcessфункцію. Інтерактивно найпростіший спосіб зробити це - відкрити диспетчер завдань, знайти python.exeпроцес, який відповідає вашій програмі, і натиснути кнопку «Завершити процес». Ви також можете використовувати taskkillкоманду для подібних цілей.
Ctrl + C.exit()ви можете це зробити.pkill -f name-of-the-python-script.python script.py&
Ctrl-Break це потужніше, ніж Ctrl-C
Щоб зупинити скрипт python за допомогою клавіатури: Ctrl+C
Щоб зупинити його за допомогою коду (це працювало у мене на Python 3):
import os
os._exit(0)
Ви також можете використовувати:
import sys
sys.exit()
або:
exit()
або:
raise SystemExit
Ctrl + Z повинен це зробити, якщо ви потрапили в оболонку python. Майте на увазі, що екземпляри сценарію можуть продовжувати працювати у фоновому режимі, тому під Linux вам потрібно вбити відповідний процес.
jobsабо psтоді, kill 8923754або будь-який ідентифікатор вакансії / процесу, який вам потрібно вбити
Control+ Dпрацює для мене у Windows 10. Крім того, ставлення exit()в кінці також працює.
Щоб зупинити програму, просто натисніть CTRL+D
або exit().
Натисніть Ctrl+ Alt+, Deleteі з'явиться диспетчер завдань. Знайдіть запущену команду Python, клацніть на ній правою кнопкою миші та натисніть Зупинити або Вбити.
ctrl+cповинен його вбити. Як варіант,kill -9це