Cómo enviar comandos/procesos al background o segundo plano

Muchas veces cuando trabajamos en una terminal deseamos ejecutar un comando pero, luego poder cerrar la terminal y que lo que ejecutamos NO se cierre, por ejemplo, ejecutar en la terminal un script y luego cerrar la terminal pero que el script siga ejecutándose … ¿cómo lograr esto?

Para lograr esto simplemente debemos poner un & al final de la línea, por ejemplo, tenemos un script llamado wifi-log.sh y para ejecutarlo y que se quede en el background sería:

./wifi-log.sh &

Vean acá un screenshot:

Aquí vemos claramente que luego de que ejecutamos la línea de arriba no aparece nada más, excepto [1] 29675 ¿Qué significa esto?

29675 es el PID (número de proceso) del script que ejecutamos, o sea, si deseamos matar el script y que deje de ejecutarse simplemente ponemos:

kill 29675

Y listo, se dejó de ejecutar.

O sea y a modo de resumen, para mandar al background (o segundo plano) un proceso (comando, varios comandos o script) debemos poner al final de la línea & y luego presionar Enter

Esto no es algo nuevo ni mucho menos pero … siempre es bueno que quede claro, además, este post me servirá para otro más que publicaré en breve.

Comparte para difundir

Si te ha gustado nuestro contenido ahora puedes ayudar a difundirlo en las redes sociales de manera sencilla usando los siguientes botones:

Envía
Pinea
Print

18 comentarios

  1.   Percaff_TI99 dijo

    Gracias por el tip, pequeños detalles que son de mucha utilidad.

    Off-topic: Felices fiestas a todos.

    1.    KZKG^Gaara dijo

      Gracias, igualmente

  2. No estaría de mas hablar de los comandos fg y bg; en especial de este último, para enviar procesos a primer y/o segundo plano.

    De mucha utilidad si olvidamos incluir el & tras los comandos 😉

    Un saludo compi

  3.   atheyus dijo

    También deberías hablar de wait para ampliar un poco mas el tema, se usa en algunas ocaciones con los $$PID y $PID o disown por ejemplo para cambiar de shell un proceso:

    sudo apt-get update &
    [1] 3983

    disown 3983

    En otra shell

    sudo reptyr 3983

    Saludos 😀

    1.    KZKG^Gaara dijo

      Gracias por la info 🙂

  4.   Euphoria dijo

    Muy util gracias, yo conocia el screen para emular ventanas y llegue a usarlo con el rtorrent hace tiempo. añado el tutorial que use en su momento por si le interesa a alguien.
    http://tuxpepino.wordpress.com/2007/05/24/%C2%BFconocias-screen/

    Saludos.

  5.   Anibal dijo

    algo muy comodo tambien es usar el comando SCREEN , pero ya es algo mas avanzado.

  6.   Hugo dijo

    Para quienes screen resulte muy avanzado, prueben con byobu, es lo que suelo usar yo y resulta muy cómodo además de que en la barra de estado ofrece información útil.
    PD. Mis disculpas por escribir desde Linux (vagancia de no reiniciar despues de jugar GRID2)

    1.    Hugo dijo

      Perdon, quise decir “por no escribir”

      1.    F3niX dijo

        Puedes escribir de donde quieras amigo, acá se respeta eso.

        1.    eliotime3000 dijo

          Cualquier Lapsus Calami se perdona, ya que no suele ser como Disqus.

  7.   Dcoy dijo

    Ö yo siempre lo hacia → nohup proceso &

  8.   dhunter dijo

    Y que pasa si ya tienes un proceso corriendo y te decides a pasarlo a 2do plano?

    Pues Ctrl+z y se queda detenido, con jobs puedes ver que numero tiene y con bg lo pones a correr en backbround.

    $ mc
    $ ctrl+z
    $ jobs
    [1]+ Stopped /usr/bin/mc -P “$MC_PWD_FILE” “$@”
    bg 1

    1.    Percaff_TI99 dijo

      Estoy actualizando Archlinux y lo pasé a 2 plano (pacman -Syu), con ctrl+z ya te dice el número que tiene, ahora si lo quiero volver a primer plano, ¿que orden se utiliza?, o hay que matar el proceso y volver a ejecutarlo.

      1.    Matias dijo

        con el comando `fg` 🙂

        por ej
        pacman -Syu
        ctrl-z # lo detiene
        bg # lo manda a background ejecutandose
        fg # lo trae de vuelta al frente 🙂

  9.   msx dijo

    fg o % para volver a los procesos que se están ejecutando de fondo:
    $ fg
    $ %2
    $ fg 3

  10.   usemoslinux dijo

    Los amantes del terminal y de ejecutar en segundo plano probablemente encontrarán de utilidad los siguientes artículos:
    http://blog.desdelinux.net/asignar-prioridad-a-comandos-ejecutados-desde-el-terminal/
    http://blog.desdelinux.net/como-recibir-notificaciones-al-finalizar-la-ejecucion-de-un-comando-en-un-terminal/
    http://blog.desdelinux.net/como-cerrar-un-terminal-sin-que-se-cierre-el-programa-ejecutado-desde-el-mismo/
    Abrazo! Pablo

  11.   Desdeslack dijo

    Hola que tal.
    Estoy probando ejecutar el tar en segundo plano y lo termina ejecutando en primero.
    Utilizando las líneas de comando tar cvf respaldo.tar /var &.
    Si me podría dar alguna ayuda. Ya intente entubarlo, con script y n lo consigo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.