Si alguna vez has tenido que lanzar algún programa en Linux directamente desde el terminal, te habrás dado cuenta que al cerrarlo, el programa que estabas ejecutando también termina. No es muy práctico abrir aplicaciones de esa forma, si queremos usar la misma ventana del terminal para otras tareas la tenemos bloqueada temporalmente.
Te propongo una alternativa por la que puedes lanzar aplicaciones desde el terminal, y aunque lo tengas que cerrar los programas seguirán ejecutandose.
Esta consiste en escribir «nohup» antes del nombre del programa. Por ejemplo:
nohup emesene
Cierra el terminal y verás que aún puedes usar emesene.
nohup permite mantener la ejecución del comando (que le pasamos como un argumento, en este caso es la orden de lanzar un programa) aunque finalize la sesión en el terminal, ya que hace que se ejecute independientemente de la sesión.
También puedes ponerle un alias al comando nohup para facilitar las cosas aún más. Con alias n=»nohup», donde en la «n» puede ir cualquier letra que quieras ponerle al comando para identificarlo.
Por ejemplo, escribe en el terminal:
alias n=»nohup»
Y para lanzar el programa, lo harías con el comando:
n emesene
El comando nohup también puede usarse en sesiones remotas, para seguir ejecutando un programa o proceso aunque en la pc remota haya terminado la sesión.
Para entender más el funcionamiento de este comando puedes escribir en el terminal:
nohup –help
La salida del programa en uso, que siempre aparece directamente en el terminal, al usar nohup aparecerá en un fichero llamado nohup.out.
Yo usaba nohup desde hace tiempo para ejecutar ciertos programas a través de una sesion ssh que tenia problemas de red.
Es una gran utilidad