Cuando ejecuta un script o comando de shell de Unix que lleva mucho tiempo, puede ejecutarlo como un trabajo en segundo plano.
En este artículo, revisemos cómo ejecutar un trabajo en segundo plano, poner un trabajo en primer plano, ver todos los trabajos en segundo plano y eliminar un trabajo en segundo plano.
1. Ejecutando un trabajo en segundo plano
Agregar una y comercial ( &) al comando ejecuta el trabajo en segundo plano.
Por ejemplo, cuando ejecuta un comando de búsqueda que puede tardar mucho tiempo en ejecutarse, puede ponerlo en segundo plano como se muestra a continuación. El siguiente ejemplo encuentra todos los archivos en el sistema de archivos raíz que cambiaron en las últimas 24 horas.
# find / -ctime -1 > /tmp/changed-file-list.txt &
2. Enviar el trabajo de primer plano actual al segundo plano usando CTRL-Z y el comando bg
Puede enviar un trabajo de primer plano que ya se está ejecutando a segundo plano como se explica a continuación:
- Presione 'CTRL+Z', lo que suspenderá el trabajo en primer plano actual.
- Ejecute bg para que ese comando se ejecute en segundo plano.
Por ejemplo, si olvidó ejecutar un trabajo en segundo plano, no necesita eliminar el trabajo actual y comenzar un nuevo trabajo en segundo plano. En su lugar, suspenda el trabajo actual y póngalo en segundo plano como se muestra a continuación.
# find / -ctime -1 > /tmp/changed-file-list.txt # [CTRL-Z] [2]+ Stopped find / -ctime -1 > /tmp/changed-file-list.txt # bg
3. Ver todos los trabajos en segundo plano usando el comando de trabajos
Puede enumerar los trabajos en segundo plano con el comando jobs . La salida de muestra del comando de trabajos es
# jobs [1] Running bash download-file.sh & [2]- Running evolution & [3]+ Done nautilus .
4. Llevar un trabajo del fondo al primer plano usando el comando fg
Puede traer un trabajo en segundo plano al primer plano usando el comando fg . Cuando se ejecuta sin argumentos, llevará el trabajo en segundo plano más reciente al primer plano.
# fg
Si tiene varios trabajos de fondo en segundo plano y desea traer un determinado trabajo al primer plano, ejecute el comando de trabajos que mostrará la identificación del trabajo y el comando.
En el siguiente ejemplo, fg %1 traerá el trabajo #1 (es decir, download-file.sh) al primer plano.
# jobs [1] Running bash download-file.sh & [2]- Running evolution & [3]+ Done nautilus . # fg %1
5. Elimine un trabajo de fondo específico usando kill %
Si desea eliminar un uso de trabajo en segundo plano específico, elimine %job-number. Por ejemplo, para matar el trabajo 2 use
# kill %2
Para eliminar trabajos en primer plano, use uno de los métodos especificados en nuestro artículo anterior 4 formas de eliminar un proceso:kill, killall, pkill, xkill.