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.
Gracias por el tip, pequeños detalles que son de mucha utilidad.
Off-topic: Felices fiestas a todos.
Gracias, igualmente
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
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 😀
Gracias por la info 🙂
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.
algo muy comodo tambien es usar el comando SCREEN , pero ya es algo mas avanzado.
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)
Perdon, quise decir «por no escribir»
Puedes escribir de donde quieras amigo, acá se respeta eso.
Cualquier Lapsus Calami se perdona, ya que no suele ser como Disqus.
Ö yo siempre lo hacia → nohup proceso &
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
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.
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 🙂
fg o % para volver a los procesos que se están ejecutando de fondo:
$ fg
$ %2
$ fg 3
Los amantes del terminal y de ejecutar en segundo plano probablemente encontrarán de utilidad los siguientes artículos:
https://blog.desdelinux.net/asignar-prioridad-a-comandos-ejecutados-desde-el-terminal/
https://blog.desdelinux.net/como-recibir-notificaciones-al-finalizar-la-ejecucion-de-un-comando-en-un-terminal/
https://blog.desdelinux.net/como-cerrar-un-terminal-sin-que-se-cierre-el-programa-ejecutado-desde-el-mismo/
Abrazo! Pablo
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.