¿Cómo se rechaza automáticamente una aplicación después de haberla iniciado desde una terminal?
Por ejemplo: si inicia una terminal y la ejecuta, firefox
la aplicación se iniciará, pero cuando cierre la terminal, Firefox también se cerrará. Para evitar cerrar involuntariamente aplicaciones que se han iniciado desde una terminal, primero se pueden poner en segundo plano con el ampersant: firefox &
lo que también restaura la capacidad de usar el indicador de esa terminal. A continuación, puedes desautorizar la aplicación desde ese mismo terminal usando el ID de proceso (PID) de la aplicación, mira este ejemplo a continuación:
$ firefox &
$ ps | grep firefox
14917 pts/6 00:00:00 firefox
$ disown 14917
La aplicación ahora se ejecuta independientemente del terminal que esté utilizando y cerrar el terminal ya no finalizará la aplicación.
Pero, ¿cómo puedes hacer esto automáticamente cada vez que inicias una aplicación?
Respuesta1
La forma más sencilla es ejecutar:
daemon firefox
para que puedas seguir usando/cerrando el propio terminal
Respuesta2
EDITAR: unmejor respuestafue proporcionado por IV.
Para hacer esto automáticamente, puedes usar un alias de bash. Si agrega las siguientes líneas a su archivo .bash_aliases en su directorio de inicio, puede iniciar cualquier aplicación my_application
desde la terminal mientras la coloca automáticamente en segundo plano y posteriormente la rechaza desde esa terminal, usando el comando s my_application
:
# start programs from shell but immediately disown them
startAndDisown() {
$1 & disown $!
}
alias s=startAndDisown
Tenga en cuenta que $!
devuelve automáticamente el PID del último trabajo asíncrono.
Respuesta3
firefox & disown $!
no funciona para mí, pero una solución similar que funciona para mí esfirefox&;disown
Otra solución que no implica disown
es utilizar GNU Screen. Conservará su sesión de terminal incluso si cierra la ventana de terminal. Sin embargo, su practicidad está limitada por cómo usas tu terminal. Si sólo usas una ventana de terminal a la vez, esta es una gran solución. Si utilizas más terminales, menos. Instale la pantalla usando su administrador de paquetes favorito, luego cada vez que abra un tipo de terminal screen -r
(o screen
si no se está ejecutando ninguna sesión de pantalla). Entonces no tendrás que preocuparte por cerrar tu terminal. Esta es una solución muy específica, pero podría ser adecuada para usted.