Respuesta corta
En la terminal que no responde:
- Hit Ctrl+ Z.
- Escribe
bgy entra.
- Escribe
disowny entra.
Respuesta larga
En la terminal que no responde, presione Ctrl+ Z, esto "pausará" el proceso (o "trabajo") y le devolverá el control de la consola. Sin embargo, notará que geditdeja de responder y no puede usarlo.
Extra : si lo desea, puede ejecutar el comando jobs, notará que se leerá Detenido para el geditcomando, por eso no puede usarlo.
Para que el trabajo se ejecute correctamente en segundo plano (es decir, para que geditresponda de nuevo), ejecute el comando bg(que significa fondo). Ahora podrá usar gedity, al mismo tiempo, tendrá el aviso para usted.
Extra : ahora, si ejecuta jobs, notará que leerá Running .
Puedes superar todo esto desde el principio. Cuando esté iniciando geditdesde la terminal, agregue un &al final del comando, así que algo como esto gedit /path/to/file &. Esto se iniciará gediten segundo plano desde el primer lugar (es posible que deba presionar Enterun par de veces para recuperar el control de la consola).
Extra : si seguías estas notas adicionales, es posible que hayas notado que la segunda vez que lo hiciste jobs, podrías ver que bash agregó un &al final del geditcomando.
Una vez que se acostumbre a este sistema, puede notar que si cierra el terminal, gedit también finalizará, sin siquiera un diálogo de confirmación. Para evitar que esto suceda, ejecute disown, lo que separará el proceso gedit del terminal, eliminándolo de la lista devuelta por jobs.
Sólo tipo:
gedit <filename-to-edit> &Esto le devolverá de inmediato el símbolo del sistema.
fuente
Puede usar el
nohuppara evitar que la GUI se conecte a un terminal:Esto le permitirá cerrar la terminal desde la que está iniciando, sin que el programa se cierre.
También debe notar que el comando nohup creará un archivo con
stdoutystderrdel comando que ejecuta. Si desea evitar eso, agregue&>/dev/nullantes de&.fuente
nohup.outcontiene la salida del comando. Esto es útil si desea ver mensajes de error. Si no desea que se cree el archivo, agregue la redirección de la siguiente manera:nohup mupdf some.pdf &>/dev/null &También puedes usar el
disowncomando. Es particularmente útil cuando ya ha comenzado el proceso que ya no desea adjuntar a la terminal.El procedimiento básico, si no recuerdo mal, es algo como esto:
Tenga en cuenta que disown es
bashespecífico.Esta publicación de blog explica ambos métodos bastante bien.
Página del manual para disown
fuente
firefox & disownDe
man gedit:Entonces, si ejecuta
geditcon-bopción, comenzará en segundo plano:Además, a continuación puede crear un alias para
gedit -b(vea aquí cómo crear un alias permanente):A partir de ahora, en el futuro puede usarlo
gedit [FILE-NAME]normalmente y comenzará en segundo plano.fuente
Sólo tipo:
Al finalizar un comando con
&in bash, se ejecuta ese comando en segundo plano. Sin embargo, ese proceso todavía está conectado a la terminal.Sin embargoResulta que estaba equivocado, este no es el caso de bash, pero es el caso de zsh. Todavía necesitas correrdisown, si cierra el terminal, gedit se cerrará, sin siquiera solicitarle que guarde un archivo editado.disownsepara el proceso en segundo plano de la terminal actual, de modo que si cierra la terminal, gedit continuará ejecutándose normalmente.detachdespués de hacerlo ctrl, zybg, sin embargo, incluso en bash.Puede encontrar más información sobre los muebles empotrados
, especialmente la sección titulada "Control de trabajos".
jobs,disowny el&meta-carácter en la página del manual para elbashcomandofuente
disownpude mantener abierto el gedit después de cerrar el terminal. No entendí lo que dijiste sobre "este no es el caso de bash, pero es el caso de zsh"Esto probablemente se deba a que abrió gedit a través de la terminal. Cuando hace esto, ve la salida de la línea de comando que normalmente está oculta si se inicia a través de la GUI. La mejor manera de solucionar esto es abrir una nueva ventana de terminal. El otro estará disponible después del cierre de gedit. También puede usar el interruptor que sugirió el usuario anterior.
fuente