Cerrar la terminal sin perder el programa en ejecución

la aplicación se cierra al cerrar la terminal de comandos linux¿Cuántas veces te has puesto a trabajar desde la terminal y has abierto un programa (con su entorno gráfico correspondiente)?

¿Eres de los que dejas la terminal abierta hasta que terminas o la cierras instintivamente para comprobar, horrorizado (si no has guardado lo que has estado haciendo), que el programa se ha ido al garete?

¿Cansado de jurar en arameo antiguo?

¿Te gustaría una solución a tus “males”?

Pues pasa (sin llamar) que dentro encontrarás la solución ;)

Solución

Imagina que abres gedit desde la terminal y, cansado de tener dos ventanas abiertas, decides quitar la terminal de en medio (sin que se cierre la ventana de tu editor de textos).

Pulsa CTRL+Z para detener el proceso; en pantalla aparecerá algo parecido a

truco para lanzar programas desde la línea de comandos

Lo siguiente será desvincular la aplicación del proceso que lo lanzó ejecutando un

disown -h %1

donde 1 es el número del job que se mostró al pulsar ctrl+z (ver el número entre corchetes que aparece en la captura de pantalla)

Lanza un

bg 1

para mandarlo a segundo plano (nuevamente el número es el del job)

Ya puedes cerrar la terminal como más coraje te dé :)

NOTA: si lanzaste el programa con un & por detrás (p.e. gedit &) te ahorrarás pasarlo a segundo plano (bg 1) pues ya lo está.

Conclusión

Pequeño truco que viene muy bien para el posicionamiento correcto (cada cosa en su sitio) evitando tener más ventanas de las necesarias abiertas en tu equipo.

Es un truco que suelo usar bastante y que no he publicado antes porque de habitual pensaba que era trivial; tras comprobar que un compañero que usa bastante Linux deja las terminales en segundo plano he optado por publicarlo por si alguno no conoce el “truco” (y eso que había prometido no volver a escribir sobre la terminal en una temporada ;) )


18 Respuestas a “Cerrar la terminal sin perder el programa en ejecución”


  1. 1 Monzisez 30 mayo 2011 a las 11:58 am

    Muy interesante el truco ;-)

    Bueno, no suelo llamar aplicaciones por la terminal al menos que sea para buscarle errores.

    A lo que si me he acostumbrado es cuando llamo una aplicación por terminal (cuando no tienen icono, etc…) es hacerlo con el símbolo & al final. Más de una vez he cerrado la terminal sin querer …

  2. 2 hatteras 30 mayo 2011 a las 12:21 pm

    ¿ Y no es mas fácil ejecutar el programa con: comanddo & exit ? por ejemplo para ejecutar gedit con la terminal y que se cierre automaticamente la terminal, pero se mantenga abierto el programa gedit: gedit & exit

  3. 4 hatteras 30 mayo 2011 a las 1:39 pm

    Lo dicho anteriormente es para ejecutar un programa que no requiera permisos de root

    Si queremos ejecutar desde la terminal un programa para el cual se necesita poner la contraseña de root ( por ejemplo synaptic ) y queremos que se mantenga dicho programa después de cerrar la terminal, lo que tendríamos que poner en la terminal no es: sudo comando & exit, ya que con eso lo que pasa es que se cierra automáticamente la terminal sin dejar poner la contraseña y por lo tanto sin ejecutarse el programa; deberíamos poner en la terminal: gksu comando & exit , pro ejemplo: gksu synaptic & exit , con lo cual se cierra automáticamente la terminal, pero se abre una ventana en la que nos pide la contraseña de root, y tras ponerla se abre el programa synaptic

  4. 7 hatteras 30 mayo 2011 a las 3:11 pm

    Mas aún, si lo que quieres es ejecutar un programa con la terminal para ver en esta los posibles mensajes de error, lo dicho no sirve, ya que la terminal se autocierra sin dejar ver mensajes de error; en este caso lo que habría que hacer es:
    – ejecutar el programa con la terminal ( en este caso da igual si es con o sin permisos de usuario, es decir se hará lo mismo si ponemos: comando, o sudo comando )
    – una vez abierto el programa, y leido los mensajes que hayan salido en la terminal, poner el cursor del ratón sobre la terminal, para que esta sea el proceso activo, y teclear:
    ctrl+z ( con lo que volverá al prompt )
    bg
    disown ( no hace falta poner nada mas, sin necesidad de ningún número del trabajo-job )
    y por último Mayusc+Ctrl+Q para cerrar la terminal
    Con todo ello el programa permanecera abierto pero abremos cerrado la terminal.

  5. 8 linuxamartillazos 31 mayo 2011 a las 10:35 pm

    ¿Y qué tal abrir una sesión de screen nada más abrir el terminal?

    (ver el man o buscar por google linux screen)

    De ese modo, si accidentalmente cerramos la ventana de la terminal, no se cerraran las aplicaciones que hayamos lanzado desde esta, y si por alguna razón deseamos volver a dicha terminal podemos reconectarnos desde otra con “screen -r”.

  6. 9 Jorge 1 junio 2011 a las 9:10 am

    Otra opción es usar el comando screen, incluso válido para conexines por ssh a otros servidores. A parte, sirve también para que dos personas puedan estar compartiendo el terminal remotamente. Te lo recomiendo encarecidamente en caso que no lo conozcas.

  7. 11 hatteras 2 junio 2011 a las 10:23 pm

    Creo que con esta linea de comadno mas o menos “universal” se puede solucionar todos los casos:
    nohup gksu comando & exit

    si el comando no requiere permisos de root no ponemos gksu
    si no queremos que se autocierre la terminal, no poenmos & exit

  8. 12 judavi 14 septiembre 2011 a las 3:53 am

    Gracias por el truco! Me sirvió mucho ;)

  9. 14 hatteras 9 enero 2012 a las 4:42 pm

    He encontrado un comando (screen ) que sirve para los tres casos, por lo que es mas fácil de recordar su uso :

    screen comando por ejemplo: screen gedit : abre gedit, y podemos cerrar la terminal sin que se cierre gedit

    screen sudo comando por ejemplo: screen sudo synaptic : nos pide la contraseña, luego abre synaptic, e igualmente podemos cerrar la terminal sin que se cierre synaptic

    En ambos casos mientras se ejecuta el programa podemos ir viendo mensajes de error, si los hubiera, en la terminal.

    Se puede usar de la misma forma el comando byobu ( byobu gedit ; byobu sudo synaptic )

    ( Obviamente hay que tener instalados los paquete screen y/o byobu )

  10. 15 Pablo 22 febrero 2012 a las 1:02 am

    Tío, eres increíble….
    no te hago la pelota, es que se te debe reconocer el mérito.
    Gracias.


  1. 1 Cerrar la terminal sin perder el programa en eje Trackback en 23 julio 2011 a las 7:30 pm
  2. 2 Cerrar la terminal sin perder el programa en eje Trackback en 30 julio 2011 a las 12:35 pm

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s




Patrocinadores

blog de coches y motor blog de coches y motor Anunciate aquí Cupones Descuento Genere ingresos con los infoproductos

¿Hablamos?

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevos mensajes por correo.

Únete a otros 1.171 seguidores

Participa

Histórico


Twitter


Seguir

Get every new post delivered to your Inbox.

Únete a otros 1.171 seguidores