Pregunta:
¿Cómo ejecuto un programa en el fondo de un shell, con la capacidad de cerrar el shell mientras dejo el programa ejecutándose? Digamos que mi interfaz de usuario tiene problemas o, por alguna razón, necesito iniciar un programa desde la ventana de terminal, digamos, nm-applet
:
nm-applet
Cuando se inicia, ocupa el primer plano de la ventana de la terminal.
¿Existe alguna forma sencilla de ejecutar el programa en segundo plano sin necesidad de dejar la terminal abierta o que ocupe toda la terminal?
En esa nota, encontré una manera de ejecutar programas desde la terminal y hacer que permita otras entradas, agregando un ampersand ( &
) al comando como tal:
nm-applet &
Pero esto no es de mucha utilidad ya que los procesos iniciados en la terminal se eliminan una vez que se cierra la terminal.
Respuesta:
Recientemente he llegado a setsid
. Comienza como si estuviera ejecutando algo desde la terminal, pero puede desconectarse (cerrar la terminal) y sigue funcionando.
Esto se debe a que el comando en realidad se bifurca y, aunque la entrada llega a la terminal actual, es propiedad de un padre completamente diferente (que permanece vivo después de cerrar la terminal).
Un ejemplo:
setsid gnome-calculator
También soy bastante disown
del disown
que se puede usar para separar un proceso del árbol actual. Lo usa junto con el símbolo comercial de fondo:
gnome-calculator & disown
También acabo de enterarme de cómo generar subcapas entre paréntesis. Este método simple funciona:
(gnome-calculator &)
Y, por supuesto, no hay nohup
como mencionaste. No estoy loco por nohup
porque tiene una tendencia a escribir a ~/nohup.out
sin que yo se lo pida. Si confía en eso, podría ser para usted.
nohup gnome-calculator
Y para los procesos a más largo plazo, hay cosas como screen
y otros muxers de terminales virtuales que mantienen vivas las sesiones entre conexiones. Esto probablemente no se aplica a usted porque solo desea acceso temporal a la salida del terminal, pero si desea volver más tarde y ver la última actividad del terminal, la pantalla probablemente sea su mejor opción.
Internet está lleno de tutoriales en screen
pero aquí hay un inicio rápido simple: