Escribo esto justo antes de salir de la oficina de Pango Studio en Madrid, tengo que irme, y en el portátil tengo varios procesos corriendo que van a demorar horas, si pongo el portátil en suspensión se van a cortar porque necesitan conexión a internet.
Tengo la solución para pausar un proceso en consola en Windows y voy a dejarla aquí escrita para el Fausto del futuro y para quién le pueda interesar.
¿La solución? Pausar los procesos que tengo corriendo. Concretamente son dos procesos que están corriendo en un terminal desde Visual Studio Code, son unos scripts en Python.
Con Unix (Linux o Mac) sería sencillo, hay un comando que pausa los procesos (control + Z) o CMD + Z.
Peeeeeero… utilizo Windows, no tengo muy claro por qué pero hace dos años pasé de mi querido Ubuntu a mi no tan querido Windows. Todo para poder usar Excel.
Cómo pausar estos scripts en Python
Para pausar los procesos que tengo corriendo en los terminales vamos a utilizar una herramienta llamada PsSuspend, que forma parte del conjunto de herramientas PsTools.
Lo puedes descargar desde aquí: https://learn.microsoft.com/es-es/sysinternals/downloads/pssuspend
Te recomiendo que lo pongas en una ruta sencilla de acceder. Yo lo he puesto en C:>.
Paso a paso con PsSuspend
Ahora que tienes PsSuspend descargado, para suspender un proceso, abrirías una consola de comandos como administrador y usarías el comando pssuspend.exe nombre_del_proceso o pssuspend.exe pid_del_proceso.
Pausar el proceso
Yo para mi ejemplo voy a usar el PID porque es muy fácil de obtener en VS Code, lo explico más abajo.
pssuspend.exe 47496
pssuspend.exe 18128
Reanudar el proceso
CONFIRMO: Al llegar a casa he abierto el portátil y he podido reanudar el proceso sin ningún problema. Copiando y pegando los comandos que había publicado aquí. 😆
Para reanudar el proceso, usarías pssuspend.exe -r nombre_del_proceso o pssuspend.exe -r pid_del_proceso
pssuspend.exe -r 47496
pssuspend.exe -r 18128
Y ya, todos felices.
Cómo obtener el P ID del proceso que queremos suspender
Ahora bien, lo que más me ha costado es obtener el ID de los procesos que quería pausar, los Ids son los que he puesto aquí (no veo nada inseguro en compartirlos).
El problema es que en el administrador de procesos de Windows no es tan sencillo identificar los procesos que quieres pausar, fíjate.
Lo maravilloso es que en Visual Studio Code sí se puede ver de forma muy sencilla el ID del proceso que queremos suspender temporalmente, se hace así:
Esto está abajo a la derecha junto al terminal.
Listo, si te ha servido, déjame un comentario o algo, que yo me entere.