programa - ¿Cómo detener/finalizar la ejecución de un script de Python?
ejecutar.py desde consola python (11)
Ctrl + Z debería hacerlo, si estás atrapado en la cáscara de python. Tenga en cuenta que las instancias de la secuencia de comandos podrían continuar ejecutándose en segundo plano, por lo que en linux debe eliminar el proceso correspondiente.
¡Escribí un programa en IDLE para tokenizar archivos de texto y comienza a tokeniza 349 archivos de texto! ¿Cómo puedo pararlo? ¿Cómo puedo detener un programa Python en ejecución?
Cuando tengo un script de Python ejecutándose en un terminal de Linux, CTRL + / funciona. (no CRTL + C o D)
Para detener su programa, simplemente presione CTRL + D
o exit()
.
Para detener su programa, simplemente presione Control + C.
Para detener un programa en ejecución: use CTRL + C para terminar el proceso.
Para manejarlo mediante programación en Python: importe el módulo sys y use sys.exit donde desee terminar el programa.
import sys
sys.exit()
Presione Ctrl + Alt + Delete y aparecerá el Administrador de tareas. Encuentre el comando de Python en ejecución, haga clic derecho sobre él y luego haga clic en Detener o Matar.
Si su programa se ejecuta en una consola interactiva, al presionar CTRL + C se generará una excepción KeyboardInterrupt
en el subproceso principal.
Si su programa Python no lo atrapa, KeyboardInterrupt
hará que Python se cierre. Sin embargo, un bloque except KeyboardInterrupt:
o algo así como un simple except:
evitará que este mecanismo realmente detenga la ejecución del script.
A veces, si KeyboardInterrupt
no funciona, puede enviar una señal SIGBREAK
lugar; en Windows, CTRL + Pausa / interrupción puede ser manejada por el intérprete sin generar una excepción atrapable de KeyboardInterrupt
.
Sin embargo, estos mecanismos solo funcionan principalmente si el intérprete de Python se está ejecutando y responde a los eventos del sistema operativo. Si el intérprete de Python no responde por algún motivo, la forma más efectiva es terminar todo el proceso del sistema operativo que ejecuta el intérprete. El mecanismo para esto varía según el sistema operativo.
En un entorno de shell de estilo Unix, puede presionar CTRL + Z para suspender cualquier proceso que actualmente esté controlando la consola. Una vez que recupere el indicador de comandos de shell, puede usar los jobs
para enumerar los trabajos suspendidos y puede eliminar el primer trabajo suspendido con kill %1
. (Si desea iniciarlo nuevamente, puede continuar con el trabajo en primer plano utilizando fg %1
; lea el manual de shell en Control de trabajos para obtener más información).
Alternativamente, en un entorno similar a Unix o Unix, puede encontrar el PID (identificador del proceso) del proceso Python y eliminarlo por PID. Usa algo como ps aux | grep python
ps aux | grep python
para encontrar qué procesos de Python se están ejecutando, y luego use kill <pid>
para enviar una señal SIGTERM
.
El comando kill
en Unix envía SIGTERM
de forma predeterminada, y un programa Python puede instalar un controlador de señal para SIGTERM
usando el módulo de signal
. En teoría, cualquier manejador de señales para SIGTERM
debe cerrar el proceso con gracia. Pero a veces, si el proceso se atasca (por ejemplo, se bloquea en un estado de suspensión de IO ininterrumpible), una señal SIGTERM
no tiene ningún efecto porque el proceso ni siquiera puede activarse para manejarlo.
Para eliminar por la fuerza un proceso que no responde a las señales, debe enviar la señal SIGKILL
, a veces denominada kill -9
porque 9
es el valor numérico de la constante SIGKILL
. Desde la línea de comandos, puede usar kill -KILL <pid>
(o kill -9 <pid>
para abreviar) para enviar un SIGKILL
y detener el proceso en ejecución inmediatamente.
En Windows, no tiene el sistema Unix de señales de proceso, pero puede finalizar un proceso en ejecución mediante la función TerminateProcess
. De manera interactiva, la forma más sencilla de hacerlo es abrir el Administrador de tareas, encontrar el proceso python.exe
que corresponde a su programa y hacer clic en el botón "Finalizar proceso". También puede usar el comando taskkill
para propósitos similares.
También puede hacerlo si usa la función exit()
en su código. Más idealmente, puedes hacer sys.exit()
. sys.exit()
puede terminar Python incluso si está ejecutando cosas en paralelo a través del paquete de multiprocessing
.
También puede utilizar el Activity Monitor
para detener el proceso de py
Ctrl-Break es más poderoso que Ctrl-C
- Para detener una secuencia de comandos de python, simplemente presione
Ctrl + C
- Dentro de un script con
exit()
, puedes hacerlo. - Puedes hacerlo en un script interactivo con solo salir.
- Puede usar
pkill -f name-of-the-python-script
.