¡Escribí un programa en IDLE para tokenizar archivos de texto y comienza a tokenizar 349 archivos de texto! ¿Cómo puedo detenerlo? ¿Cómo puedo detener un programa Python en ejecución?
104
¡Escribí un programa en IDLE para tokenizar archivos de texto y comienza a tokenizar 349 archivos de texto! ¿Cómo puedo detenerlo? ¿Cómo puedo detener un programa Python en ejecución?
ctrl+cdebería matarlo. Alternativamente,kill -9esRespuestas:
Para detener su programa, simplemente presione Control + C.
fuente
^Cen la terminal y el monitor del sistema mostró que Python todavía está usando mucha CPU ...Ctrl + Z(al menos en Linux). Luego, si desea eliminarlo, ejecutekill %ndonde "n" es el número que obtuvo junto a "Detenido" cuando presionóCtrl + Z. Si desea reanudarlo, ejecutefg.También puede hacerlo si usa la
exit()función en su código. Más idealmente, puede hacerlosys.exit().sys.exit()que podría terminar Python incluso si está ejecutando cosas en paralelo a través delmultiprocessingpaquete.Nota: Para utilizar el
sys.exit(), debe importarlo:import sysfuente
sys.exit(1)no detiene el proceso. Básicamente tengo varios subprocesos y cada uno de ellos se bloquea en procesos externos iniciados porPopen. Necesito una opción nuclear para eliminar todos los subprocesos creados por el proceso de Python, así como el proceso de Python en sí. No encontré hasta ahora.Si su programa se ejecuta en una consola interactiva, al presionar CTRL+ se Cgenerará una
KeyboardInterruptexcepción en el hilo principal.Si su programa Python no lo detecta,
KeyboardInterrupthará que Python salga. Sin embargo, unexcept KeyboardInterrupt:bloque, o algo así como un simpleexcept:, evitará que este mecanismo detenga la ejecución del script.A veces, si
KeyboardInterruptno funciona, puede enviar unaSIGBREAKseñal en su lugar; en Windows, el intérprete puede manejar CTRL+ Pause/Breaksin generar unaKeyboardInterruptexcepción capturable .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 alguna razón, la forma más efectiva es terminar todo el proceso del sistema operativo que está ejecutando 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+ Zpara suspender cualquier proceso que esté controlando actualmente la consola. Una vez que recupere el indicador de shell, puede usar
jobspara enumerar los trabajos suspendidos y puede eliminar el primer trabajo suspendido conkill %1. (Si desea que se vuelva a ejecutar, puede continuar el trabajo en primer plano usandofg %1; lea el manual de su shell sobre control de trabajos para obtener más información).Alternativamente, en un entorno Unix o similar a Unix, puede encontrar el PID (identificador de proceso) del proceso Python y eliminarlo por PID. Use algo como
ps aux | grep pythonpara encontrar qué procesos de Python se están ejecutando y luego usekill <pid>para enviar unaSIGTERMseñal.El
killcomando en Unix envíaSIGTERMpor defecto, y un programa Python puede instalar un manejador de señales paraSIGTERMusar elsignalmódulo. En teoría, cualquier controlador de señales deSIGTERMdebería cerrar el proceso correctamente. Pero a veces, si el proceso está bloqueado (por ejemplo, bloqueado en un estado de suspensión de E / S ininterrumpida), unaSIGTERMseñal no tiene ningún efecto porque el proceso ni siquiera puede despertarse para manejarlo.Para matar a la fuerza un proceso que no responde a las señales, debe enviar la
SIGKILLseñal, a veces denominadakill -9porque9es el valor numérico de laSIGKILLconstante. Desde la línea de comando, puede usarkill -KILL <pid>(okill -9 <pid>para abreviar) para enviarSIGKILLy detener la ejecución del proceso inmediatamente.En Windows, no tiene el sistema Unix de señales de proceso, pero puede terminar forzosamente un proceso en ejecución utilizando la
TerminateProcessfunción. De forma interactiva, la forma más sencilla de hacerlo es abrir el Administrador de tareas, encontrar elpython.exeproceso que corresponde a su programa y hacer clic en el botón "Finalizar proceso". También puede usar eltaskkillcomando para propósitos similares.fuente
Ctrl + C.exit(), puedes hacerlo.pkill -f name-of-the-python-script.fuente
python script.py&Ctrl-Break es más poderoso que Ctrl-C
fuente
Para detener un programa en ejecución, use Ctrl+ Cpara finalizar el proceso.
Para manejarlo programáticamente en Python, importe el
sysmódulo y utilícelosys.exit()donde desee terminar el programa.import sys sys.exit()fuente
Para detener un script de Python usando el teclado:
Ctrl+CPara detenerlo usando código (esto me ha funcionado en Python 3):
import os os._exit(0)también puedes usar:
import sys sys.exit()o:
o:
raise SystemExitfuente
Ctrl + Z debería hacerlo, si está atrapado en el caparazón de Python. Tenga en cuenta que las instancias del script podrían continuar ejecutándose en segundo plano, por lo que en Linux debe eliminar el proceso correspondiente.
fuente
jobsopsluegokill 8923754o cualquier ID de trabajo / ID de proceso que necesite eliminarCuando tengo un script de Python ejecutándose en una terminal de Linux, CTRL + \ funciona. (no CRTL + C o D)
fuente
Control+ Dfunciona para mí en Windows 10. Además, poner
exit()al final también funciona.fuente
exit () matará el Kernel si está en Jupyter Notebook, por lo que no es una buena idea.
raiseEl comando detendrá el programa.fuente
también puede usar
Activity Monitorpara detener el proceso pyfuente
Para detener su programa, simplemente presione CTRL+D
o
exit().fuente
Presione Ctrl+ Alt+ Deletey aparecerá el Administrador de tareas. Busque el comando de Python en ejecución, haga clic derecho sobre él y luego haga clic en Detener o Eliminar.
fuente
Si está trabajando con Spyder, use CTRL +. (DOT) y reiniciará el kernel, también detendrá el programa.
fuente
Solución de Windows: Control + C.
Solución Macbook: Control (^) + C.
Otra forma es abrir una terminal, escribir
top, escribirPIDel proceso que le gustaría matar y luego escribir en la terminal:kill -9 <pid>fuente