
Estoy intentando iniciar un programa desde la Terminal de tal manera que ocurra lo siguiente:
- Cerrar la Terminal no cierra el programa
- El programa no envía nada a la Terminal al abrir, usar o cerrar
- La Terminal se puede utilizar de forma gratuita para otras cosas.
- El comando es breve y dulce.
- No hay ningún archivo de salida del que preocuparse
Respuesta1
Ver man nohup
:
NAME
nohup - run a command immune to hangups, with output to a non-tty
Respuesta:
nohup program-name &
Respuesta2
Creo que esta sería la forma más completa:
program-name </dev/null &>/dev/null &
disown %%
Rechazar el proceso en segundo plano significa que el shell ya no lo rastreará. No te dirá cuando esté hecho. No le impedirá cerrar su caparazón. %%
significa "el trabajo en segundo plano más reciente".
Si desea ocultar todos los detalles, coloque una función como esta en su .bashrc
launch_and_forget () { "$@" </dev/null &>/dev/null & disown %%; }
Entonces
launch_and_forget program args "args args" ...
Dale un nombre que sea significativo para ti.
Respuesta3
Puedes usar muy simplementesetsid
:-
NAME
setsid - run a program in a new session
SYNOPSIS
setsid program [arg...]
DESCRIPTION
setsid runs a program in a new session.
Pruebe el siguiente comando: -
setsid <command>
Ejemplo:- setsid gedit
, setsid nautilus ~/Downloads/
etc.
Respuesta4
Yo recomendaría cualquiera de los dostmux, comoRen Siyuansugerido, oPantalla GNU. De esa manera, obtendrás una nueva terminal para tu comando. Puedes separarlo y olvidarte de él, pero puedes volver si cambias de opinión.