Não consigo usar o terminal enquanto o comando gedit está em execução

39

Eu recentemente instalei o 12.04.
Quando tento editar um arquivo com gedit , não consigo usar o terminal até fechar o arquivo de edição ou preciso abrir um novo terminal. Mas acho que não tive esse problema com 11.04, no entanto não tenho certeza.
Existe alguma maneira de evitar isso e usar o mesmo terminal durante a edição de arquivos.

    
por user175023 14.07.2013 / 09:14
fonte

7 respostas

75

Resposta curta

No terminal sem resposta:

  1. Pressione Ctrl + Z .
  2. Digite bg e insira.
  3. Digite disown e insira.

Resposta longa

No terminal que não responde, pressione Ctrl + Z , isso irá "pausar" o processo (ou "job") e retornar o controle do console para você. No entanto, você perceberá que gedit não responde e você não pode usá-lo.

  

Extra : se você quiser, você pode executar o comando jobs , você perceberá que ele irá ler Parado para o comando gedit , é por isso que você não pode usá-lo.

Para que a tarefa seja executada com êxito em segundo plano (ou seja, para tornar gedit responsivo novamente), execute o comando bg (que significa plano de fundo). Agora você poderá usar gedit e, ao mesmo tempo, enviar a solicitação para você mesmo.

  

Extra : agora, se você executar jobs , perceberá que ele vai ler Em execução .

Você pode superar tudo isso desde o começo. Quando você estiver lançando gedit do terminal, adicione um & ao final do comando, algo assim gedit /path/to/file & . Isto irá lançar gedit em segundo plano a partir do primeiro lugar (você pode precisar pressionar Enter algumas vezes para recuperar o controle do console).

  

Extra : se você estava seguindo essas notas extras, você deve ter notado que na segunda vez em que fez jobs , você pode ver que o bash adicionou & ao final da gedit command.

Uma vez que você se acostumar com este sistema, você pode notar que se você fechar o terminal, o gedit também terminará, mesmo sem um diálogo de confirmação. Para evitar que isso aconteça, execute disown , que desanexará o processo de gedit do terminal, removendo-o da lista retornada por jobs .

    
por Alaa Ali 14.07.2013 / 09:38
fonte
41

Basta digitar:

gedit <filename-to-edit> &

Isso retornará imediatamente o prompt de comando para você.

    
por david6 14.07.2013 / 11:48
fonte
25

Você pode usar o nohup para impedir que a GUI seja anexada a um terminal:

nohup mupdf some.pdf &

Isso permitirá que você feche o terminal do qual você está iniciando, sem que o programa seja fechado.

Você também deve observar que o comando nohup criará um arquivo com stdout e stderr do comando executado. Se você quiser evitar isso, adicione &>/dev/null antes do & .

nohup mupdf some.pdf &>/dev/null &
    
por Braiam 12.08.2013 / 01:21
fonte
19

Você também pode usar o comando disown . É particularmente útil quando você já iniciou o processo que não deseja mais anexado ao terminal.

O procedimento básico, se bem me lembro, é algo assim:

$ > 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!

Observe que o cancelamento é bash específico.

Esta postagem no blog explica os dois métodos muito bem.

Página man do disown

    
por jmathew 12.08.2013 / 05:25
fonte
11

De man gedit :

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

Portanto, se você executar a opção gedit with -b , ela será iniciada em segundo plano:

gedit -b [FILE-NAME]
Além disso, em seguida, você pode criar um alias para gedit -b (veja aqui como criar um alias permanente):

alias gedit='gedit -b'

A partir de agora, no futuro, você pode usar gedit [FILE-NAME] como normal e começará em segundo plano.

    
por Radu Rădeanu 15.07.2013 / 14:02
fonte
10

Basta digitar:

gedit FILENAME & disown

Encerrar um comando com & no bash executa esse comando em segundo plano. No entanto, esse processo ainda está conectado ao terminal.

Sem disown , se você fechar o terminal, o gedit será fechado, mesmo sem solicitar que você salve um arquivo editado. disown desanexa o processo em segundo plano do terminal atual, de modo que, se você fechar o terminal, o gedit continuará sendo executado normalmente. Acontece que eu estava errado, não é esse o caso do bash, mas é o caso para zsh. Você ainda precisa executar detach depois de fazer ctrl - z e bg , no entanto, mesmo no bash.

Você pode descobrir mais sobre os caracteres internos jobs , disown e & na página do manual para o comando bash , especialmente a seção rotulada "controle de tarefa".

    
por Flimm 16.07.2013 / 23:42
fonte
0

Isso provavelmente é porque você abriu o gedit via terminal. Quando você fizer isso, verá a saída da linha de comando que normalmente fica oculta se iniciada por meio da GUI. A melhor maneira de corrigir isso é abrir uma nova janela de terminal. O outro ficará disponível depois que o gedit for fechado. Você também pode usar a opção sugerida pelo usuário acima.

    
por user175759 16.07.2013 / 21:12
fonte

Tags