Я написал программу на 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
Чтобы остановить запущенную программу, используйте Ctrl+, Cчтобы завершить процесс.
Чтобы обработать это программно на Python, импортируйте sys
модуль и используйте его sys.exit()
там, где вы хотите завершить программу.
import sys
sys.exit()
Чтобы остановить скрипт python с помощью клавиатуры: Ctrl
+C
Чтобы остановить его с помощью кода (у меня это сработало на Python 3):
import os
os._exit(0)
вы также можете использовать:
import sys
sys.exit()
или:
exit()
или:
raise SystemExit
Ctrl + Z должен сделать это, если вы застряли в оболочке python. Имейте в виду, что экземпляры скрипта могут продолжать работать в фоновом режиме, поэтому в Linux вам нужно убить соответствующий процесс.
jobs
или ps
to then kill 8923754
или любой идентификатор задания / процесса, который вам нужно убить
Control+ Dу меня работает на Windows 10. Также работает и установка exit()
в конец.
Чтобы остановить вашу программу, просто нажмите CTRL+D
или exit()
.
Нажмите Ctrl+ Alt+, Deleteи появится диспетчер задач. Найдите запущенную команду Python, щелкните ее правой кнопкой мыши и выберите «Остановить» или «Убить».
ctrl+c
должен убить его. Как вариант,kill -9
это