GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo suspender un proceso y reanudarlo más tarde en Linux

Imagina este escenario. Ejecutas un programa. Pero, no sabes cuánto tardará en terminar. El proceso sigue ejecutándose varios minutos. No puede esperar mucho más, porque hay otros programas importantes esperando en la cola. ¿Alguna vez has estado en una situación como esta? ¡No hay problema! Acabo de encontrar un truco simple para suspender un proceso y reanudarlo más tarde en Linux.

Lo que voy a hacer es simplemente pausar el proceso que se está ejecutando actualmente, realizar otras tareas importantes y luego reanudar el proceso detenido después de que se completen todos los demás procesos.

Esto puede ser muy útil cuando tiene menos RAM o procesador para realizar múltiples tareas. Puede pausar los procesos en ejecución en cualquier momento y reanudarlos más tarde, sin tener que volver a iniciarlos.

Ahora avancemos y aprendamos a suspender o pausar un proceso en ejecución y reanudarlo más tarde en sistemas operativos Linux y similares a Unix.

Suspender un proceso y reanudarlo más tarde en Linux

¡Esto es absolutamente fácil! Todo lo que tiene que hacer es encontrar el PID (ID de proceso) y usar ps o ps aux y luego pausarlo, finalmente reanudarlo usando kill comando.

Veamos un ejemplo. Voy a descargar la imagen de arranque de red de Ubuntu 18.04 usando wget comando:

$ wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso &

Aquí, & El símbolo moverá la tarea en ejecución (es decir, wget ) al fondo sin cerrarlo.

Ahora, quiero pausar esta tarea y ejecutar otras tareas importantes. Para hacerlo, primero busque los procesos en ejecución usando el comando:

$ ps

Salida de muestra:

  PID TTY          TIME CMD
30056 pts/0    00:00:00 bash
16143 pts/0    00:00:01 wget
32677 pts/0    00:00:00 ps

Como puede ver, el PID del comando wget es 16143 .

Detengamos este proceso ahora. Para hacerlo, ejecuta el siguiente comando desde tu Terminal:

$ kill -STOP 16143

Verifique si el proceso se ha detenido o no usando el comando:

$ ps

Salida de muestra:

PID TTY TIME CMD
8155 pts/0 00:00:00 bash
16143 pts/0 00:00:01 wget
16398 pts/0 00:00:00 ps

[1]+ Stopped wget http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso

¿Ver? El wget el proceso se ha detenido.

Continúe y haga otras tareas importantes. Una vez que se completen todas las tareas, reanude el proceso detenido usando el comando:

$ kill -CONT 16143

Para verificar si el proceso se está ejecutando, ejecute ps comando.

$ ps

¿Ver? ¡El proceso que detuvimos antes se ha reanudado!

Como ya dije, esto será útil si no puede realizar múltiples tareas en un sistema que tiene poca RAM o velocidad de CPU.

TL;DR

Primero, encuentre el pid del proceso en ejecución usando el comando ps. Luego, pausalo usando kill -STOP <PID> y luego hiberne su sistema. Reanude su sistema y reanude el proceso detenido usando el comando kill -CONT <PID> .

¿Funcionará después de reiniciar mi sistema?

Quizás se pregunte, ¿esto también funcionará después de un apagado o reinicio completo del sistema? NO . Porque los PID de los procesos cambiarán automáticamente después de reiniciar su sistema. No persisten al reiniciar. En tales casos, puede suspender o hibernar todo su sistema y reanudarlo cuando esté listo.

Y eso es todo. Ahora sabe cómo pausar y reanudar un proceso en sistemas operativos Linux y similares a Unix. Espero que esto ayude.

Lectura recomendada:

  • Apagado automático, reinicio, suspensión e hibernación de su sistema Linux en un momento específico
  • Active automáticamente su sistema Linux desde el modo de suspensión o hibernación
  • Reptyr:mueva un proceso en ejecución de un terminal a otro sin cerrarlo
  • Cómo agregar comandos de Linux a la cola y ejecutarlos uno por uno
  • Cómo mostrar la información del proceso mediante Procs en Linux

Linux
  1. Cómo matar un proceso zombie en Linux

  2. Cómo iniciar el comando de Linux en segundo plano y separar el proceso en la terminal

  3. Cómo encontrar y matar el proceso Zombie en Linux

  4. ¿Cómo hibernar un proceso en Linux almacenando su memoria en el disco y restaurándolo más tarde?

  5. Cómo pausar/reanudar un proceso en Linux

Cómo trabajar con procesos en primer plano y en segundo plano en Linux

Cómo MATAR un proceso en Linux

Cómo deshabilitar los modos de suspensión e hibernación en Linux

Cómo encontrar el PID y PPID de un proceso en Linux

Cómo matar procesos en Linux usando kill, killall y pkill

Cómo rastrear y rastrear un proceso de Linux