Detener manualmente la ejecución de un script largo en PowerShell

  1. Causas comunes de finalización de secuencias de comandos en PowerShell
  2. Detener manualmente un script terminado en PowerShell
Detener manualmente la ejecución de un script largo en PowerShell

Al ejecutar secuencias de comandos, especialmente aquellas con largas líneas de códigos con largos tiempos de ejecución, habrá ocasiones en las que parecerá que las secuencias de comandos terminan y se bloquean. Este artículo discutirá las causas comunes por las que la ejecución de nuestro script se detiene a la mitad y cómo podemos detener un proceso de PowerShell de ejecución prolongada.

Causas comunes de finalización de secuencias de comandos en PowerShell

Aquí hay algunas causas comunes de por qué nuestro script termina mientras se ejecuta dentro de nuestro entorno de PowerShell:

  1. Falta de recursos

    La falta de recursos en una máquina es una de las causas comunes por las que la ejecución de PowerShell se detiene a mitad de camino. Esta situación ocurre especialmente si su dispositivo o servidor realiza múltiples trabajos o funciones y tiene menos recursos de los que puede manejar.

    Los procesos prioritarios a veces se ejecutan primero y se producen interrupciones, lo que detiene el script a mitad de camino. Sin embargo, a veces el intérprete no podía reanudar desde su línea de ruptura porque es posible que las conexiones establecidas ya se hayan cerrado o terminado, lo que nos lleva a nuestro siguiente ejemplo.

  2. Tiempo de espera de conexión

    Esta situación suele ocurrir cuando nuestro script incluye una base de datos o conexiones remotas a otras ubicaciones como, por ejemplo, un servidor. Nuestro script tardará demasiado en responder y, a veces, PowerShell no podrá determinar si la conexión final se ha cerrado o no, lo que nos dejará en un proceso atascado durante bastante tiempo.

  1. Error visual

    Si usamos PowerShell IDE, podemos encontrar uno de los errores visuales donde, si hacemos clic en la ventana azul de PowerShell mientras se está ejecutando, es posible que no muestre mensajes ni revele su estado mientras se ejecuta el script. Entonces, técnicamente, la secuencia de comandos aún se ejecuta en el back-end, pero puede parecer que la ejecución de la secuencia de comandos se ha detenido durante bastante tiempo en nuestro monitor.

Detener manualmente un script terminado en PowerShell

Podemos detener el script manualmente enviando una señal de interrupción a nuestro intérprete. Esto se aplica a PowerShell y a la mayoría de los scripts o lenguajes de programación que usan la línea de comandos.

Estos son algunos de los pocos ejemplos de interrupciones:

  1. Ctrl+C envía SIGINT para interrumpir la aplicación. Por lo general, hace que se cancele, pero esto depende de la aplicación para decidir.
  2. Ctrl+Z envía SIGTSTP a una aplicación en primer plano, colocándola efectivamente en segundo plano, suspendida. Esto es útil si salimos de algo como un editor y tomamos algunos datos que necesitamos.

Si usamos terminales basados en la nube o web como Azure Shell o PowerGUI, una simple actualización con caché usando Shift+F5 funcionará como una señal de interrupción.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell Script