No puedo usar el terminal mientras el comando gedit se está ejecutando

40

Instalé recientemente 12.04.
Cuando trato de editar un archivo con gedit , no puedo usar el terminal hasta que cierro el archivo de edición o tengo que abrir un nuevo terminal. Pero creo que no tuve este problema con 11.04, pero no estoy seguro.
¿Hay alguna forma de evitar esto y usar el mismo terminal mientras se editan los archivos?

    
pregunta user175023 14.07.2013 - 07:14

7 respuestas

76

Respuesta corta

En el terminal que no responde:

  1. Pulse Ctrl + Z .
  2. Escriba bg y escriba.
  3. Escriba disown y escriba.

Respuesta larga

En el terminal que no responde, pulse Ctrl + Z , esto "pausará" el proceso (o "trabajo") y le devolverá el control de la consola. Sin embargo, notarás que gedit deja de responder y no puedes usarlo.

  

Extra : si lo deseas, puedes ejecutar el comando jobs , notarás que leerá Stopped para el comando gedit , es por eso que no puedes usarlo.

Para hacer que el trabajo se ejecute correctamente en segundo plano (es decir, para hacer que gedit responda nuevamente), ejecute el comando bg (que significa fondo). Ahora podrá usar gedit y, al mismo tiempo, recibir el aviso usted mismo.

  

Extra : ahora, si ejecutas jobs , verás que leerá En ejecución .

Puedes superar todo esto desde el principio. Cuando estás lanzando gedit desde el terminal, agrega un & al final del comando, así que algo como esto gedit /path/to/file & . Esto lanzará gedit en el fondo desde el primer lugar (es posible que deba presionar Enter un par de veces para recuperar el control de la consola).

  

Extra : si estuvieras siguiendo estas notas extra, habrás notado que la segunda vez que hiciste jobs , podrías ver que bash agregó un & hasta el final del gedit command.

Una vez que se acostumbre a este sistema, puede observar que si cierra el terminal, gedit también terminará, sin siquiera un diálogo de confirmación. Para evitar que esto ocurra, ejecute disown , que separará el proceso gedit del terminal, eliminándolo de la lista devuelta por jobs .

    
respondido por el Alaa Ali 14.07.2013 - 07:38
41

Simplemente escriba:

gedit <filename-to-edit> &

Esto le devolverá inmediatamente el símbolo del sistema.

    
respondido por el david6 14.07.2013 - 09:48
25

Puede usar nohup para evitar que la GUI se adjunte a una terminal:

nohup mupdf some.pdf &

Esto le permitirá cerrar el terminal desde el que está iniciando, sin que se cierre el programa.

También debería observar que el comando nohup creará un archivo con stdout y stderr del comando que ejecuta. Si desea evitar eso, agregue &>/dev/null antes del & .

nohup mupdf some.pdf &>/dev/null &
    
respondido por el Braiam 11.08.2013 - 23:21
19

También puede usar el comando disown . Es particularmente útil cuando ya ha iniciado el proceso que ya no desea adjuntar a la terminal.

El procedimiento básico, si no recuerdo mal, es algo como esto:

$ > firefox      #Oops
Ctrl + z         #Suspend the process
$ > bg           #Push the process to the background
$ > disown       #Detach most recent process started or stopped
$ > exit         #Terminal gone!

Tenga en cuenta que el rechazo es bash specific.

Esta publicación de blog explica ambos métodos bastante bien.

página de hombres por desconocimiento

    
respondido por el jmathew 12.08.2013 - 03:25
11

de man gedit :

-b, --background
         Run gedit in the background.

Entonces, si ejecuta gedit con la opción -b , se iniciará en segundo plano:

gedit -b [FILE-NAME]

Además, a continuación puede crear un alias para gedit -b (consulte aquí cómo crear un alias permanente):

alias gedit='gedit -b'

A partir de ahora, en el futuro puede usar gedit [FILE-NAME] como de costumbre y se iniciará en segundo plano.

    
respondido por el Radu Rădeanu 15.07.2013 - 12:02
10

Simplemente escriba:

gedit FILENAME & disown

Terminar un comando con & en bash ejecuta ese comando en el fondo. Sin embargo, ese proceso todavía está conectado a la terminal.

Sin disown , si cierra el terminal, gedit se cerrará, sin siquiera solicitarle que guarde un archivo editado. disown separa el proceso en segundo plano del terminal actual, de modo que si cierra el terminal, gedit continuará ejecutándose normalmente. Resulta que estaba equivocado, este no es el caso para bash, pero es el caso para zsh. Sin embargo, todavía necesita ejecutar detach después de hacer ctrl - z y bg , incluso en bash.

Puede obtener más información acerca de los built-ins jobs , disown y el & metacharacter en la página de manual de para el comando bash , especialmente la sección etiquetada como "control de trabajo".

    
respondido por el Flimm 16.07.2013 - 21:42
0

Esto es probablemente porque abriste gedit vía terminal. Cuando hace esto, ve la salida de línea de comando que normalmente está oculta si se inicia a través de la GUI. La mejor manera de arreglar esto es abrir una nueva ventana de terminal. El otro estará disponible después de que gedit se cierre. También puede usar el interruptor sugerido por el usuario anterior.

    
respondido por el user175759 16.07.2013 - 19:12

Lea otras preguntas en las etiquetas