Saltar al contenido

¿Cómo detener/terminar la ejecución de un script de python?

Contamos con la respuesta a esta duda, al menos eso creemos. Si sigues con preguntas dínoslo, que sin tardar

Solución:

También puedes hacerlo si usas el exit() función en su código. Más idealmente, puedes hacer sys.exit(). sys.exit() cual podría termine Python incluso si está ejecutando cosas en paralelo a través del multiprocessing paquete.

Nota: Para utilizar el sys.exit(), debes importarlo: import sys

Para detener su programa, simplemente presione Control + C.

Si su programa se ejecuta en una consola interactiva, presione CONTROL + C levantará un KeyboardInterrupt excepción en el hilo principal.

Si su programa Python no lo detecta, el KeyboardInterrupt hará que Python salga. Sin embargo, un except KeyboardInterrupt: bloque, o algo así como un desnudo except:, evitará que este mecanismo realmente detenga la ejecución del script.

A veces si KeyboardInterrupt no funciona puedes enviar un SIGBREAK señal en su lugar; en Windows, CONTROL + Pausa/Pausa puede ser manejado por el intérprete sin generar un catchable KeyboardInterrupt excepción.

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 finalizar 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 estilo Unix, puede presionar CONTROL + Z a suspender cualquier proceso que esté controlando actualmente la consola. Una vez que recupere el indicador de shell, puede usar jobs para listar trabajos suspendidos, y puede eliminar el primer trabajo suspendido con kill %1. (Si desea que vuelva a ejecutarse, puede continuar el trabajo en primer plano utilizando fg %1; lea el manual de su caparazón sobre el 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 de Python y matarlo por PID. Usa algo como ps aux | grep python para encontrar qué procesos de Python se están ejecutando y luego usar kill para enviar un SIGTERM señal.

El kill comando en Unix envía SIGTERM por defecto, y un programa de Python puede instalar un controlador de señal para SIGTERM utilizando el signal módulo. En teoría, cualquier controlador de señal para SIGTERM debería cerrar el proceso con gracia. Pero a veces, si el proceso está atascado (por ejemplo, bloqueado en un estado de suspensión de E/S ininterrumpida), un SIGTERM la señal no tiene efecto porque el proceso ni siquiera puede despertarse para manejarlo.

Para eliminar por la fuerza un proceso que no responde a las señales, debe enviar el SIGKILL señal, a veces denominada kill -9 porque 9 es el valor numérico de la SIGKILL constante. Desde la línea de comando, puede usar kill -KILL (o kill -9 para abreviar) para enviar un SIGKILL y detener la ejecución del proceso inmediatamente.

En Windows, no tiene el sistema Unix de señales de proceso, pero puede terminar por la fuerza un proceso en ejecución usando el TerminateProcess función. De forma interactiva, la forma más sencilla de hacerlo es abrir el Administrador de tareas, buscar el python.exe proceso que corresponde a su programa, y ​​haga clic en el botón “Finalizar proceso”. También puede utilizar el taskkill comando para propósitos similares.

Te invitamos a sustentar nuestro análisis poniendo un comentario o dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *