Elimine todos los trabajos detenidos Linux

Kill All Stopped Jobs Linux



En Linux, un trabajo se refiere a un proceso iniciado y administrado por el shell. Puede ser un solo comando, un comando de shell largo y complejo que incluye conductos y redirecciones, un ejecutable o un script. Cada trabajo en Linux se administra asignando una IP de trabajo secuencial asociada con un proceso específico.

Un concepto clave para comprender los trabajos de Linux son sus estados. Hay dos estados principales para los trabajos de Linux:







  • Primer plano
  • Fondo

Trabajos de primer plano

Un trabajo en primer plano se refiere a un comando o programa ejecutado en el shell y ocupa la sesión de terminal hasta que se completa. Un ejemplo sería iniciar un administrador de archivos o un navegador en la terminal.



Por ejemplo, la siguiente captura de pantalla muestra una ventana de terminal con un trabajo en primer plano.







En la imagen de arriba, el indicador de shell no está disponible hasta que se cierra la ventana de Firefox.

Trabajos en segundo plano

Lo opuesto al primer plano son los trabajos en segundo plano. Para iniciar un trabajo en el shell como trabajo en segundo plano, usamos el símbolo comercial (&). El uso de esto le dice al shell que ponga los comandos que vienen antes del signo comercial en segundo plano y que muestre inmediatamente el indicador del shell.



El siguiente ejemplo muestra cómo poner el trabajo de Firefox (en el ejemplo anterior) en segundo plano.

Como puede ver, el indicador de shell ahora está disponible a pesar de que Firefox aún se está ejecutando.

Notará que se muestran valores numéricos para trabajos en segundo plano. El primero, indicado por corchetes ([]), muestra el ID del trabajo, mientras que el otro valor indica el PID del proceso asociado con el trabajo.

Cómo administrar trabajos en segundo plano

El comando de trabajos maneja el control de trabajos. Esto le permite ver los trabajos en segundo plano.

sudo trabajos

La ejecución del comando anterior muestra trabajos en segundo plano como se muestra a continuación:

Comenzando por el lado izquierdo, tenemos el ID del trabajo.

Inmediatamente después de los corchetes se encuentra el signo más (+) o menos (-). El signo más indica que este es el trabajo actual, mientras que el número menos muestra el siguiente trabajo.

El siguiente corchete muestra el estado del trabajo. Eso puede estar en ejecución, detenido, terminado, terminado o salir con un código de estado.

Finalmente, la última parte muestra el nombre real del trabajo.

Mostrar trabajos con PID

Para mostrar trabajos en segundo plano con sus valores PID correspondientes, usamos el indicador -l como:

trabajos -los

Eso mostrará los trabajos en segundo plano con sus valores PID, como se muestra en la imagen a continuación.

Trabajos en segundo plano con salida

Supongamos que tenemos un trabajo que queremos ejecutar en segundo plano y que descarga una salida en la pantalla. Por ejemplo, en el ejemplo anterior, puse el comando apt, que tiene una gran cantidad de resultados en segundo plano, sin estropear mi terminal.

Para hacer esto, puede redirigir la salida en / dev / null como:

sudo apt-get update > /dev/nulo&

Cómo llevar un trabajo en segundo plano a primer plano

Podemos traer trabajos en segundo plano al primer plano usando el comando fg. Por ejemplo, para poner en segundo plano el trabajo de Firefox con el ID de trabajo 1, podemos hacer lo siguiente:

fg %1

Eso traerá el trabajo al primer plano como:

[correo electrónico protegido]: ~ $fg %1

Firefox

Opciones de comando de trabajos

El comando de trabajos no tiene muchas opciones.

Ya hemos hablado de la -l para mostrar los trabajos con sus ID de proceso.

Otras opciones que puede pasar al comando de trabajo incluyen:

  • -norte - Muestra los trabajos que han cambiado de estado desde la última notificación. Por ejemplo, un trabajo que ha cambiado de un estado en ejecución a un estado detenido.
  • -pag - Muestra solo los PID de los trabajos.
  • -r –Sólo trabajos en ejecución
  • -s - Muestra solo trabajos detenidos.

Cómo terminar o eliminar trabajos

Podemos terminar trabajos usando el comando kill seguido del ID del trabajo, una subcadena o el ID del proceso.

Matar usando la identificación del trabajo

Para eliminar un trabajo con la identificación del trabajo, usamos el% seguido del valor de la identificación como:

matar %%

Esto matará el trabajo actual; esto es similar a% +.

Mata un trabajo con una subcadena

Matar un trabajo con una subcadena, prefijo la subcadena con%? seguido del valor de la subcadena como:

matar %? calculadora-gnomo

NOTA : Linux ejecuta trabajos al mismo tiempo. Eso significa que salta hacia adelante y hacia atrás entre los trabajos disponibles hasta que se completan. Por lo tanto, terminar una sesión de terminal con trabajos en ejecución terminará todos sus trabajos.

No tiene que preocuparse por esto si usa un multiplexor de terminal como tmux o screen, ya que puede volver a conectarlos.

Cómo acabar con los trabajos detenidos

Para que eliminemos todos los trabajos detenidos, debemos unir dos comandos. El primero obtendrá los PID de todos los trabajos detenidos y el siguiente eliminará todos los trabajos proporcionados.

Para ver los trabajos detenidos, usamos el comando

trabajos -s

Este comando muestra todos los trabajos detenidos.

Teniendo esto, podemos obtener los PID de los trabajos detenidos y canalizarlos al comando kill como:

sudo matar -9 `trabajos -pag-s`

Esto acabará con todos los trabajos detenidos.

Conclusión

Este tutorial repasó los conceptos de control de trabajos en Linux y cómo obtener información sobre los trabajos. Es bueno tener en cuenta que es posible que el control de trabajos no esté disponible según el shell que elija.

Gracias por leer y Happy Shells.