Como abrir um aplicativo GUI e 'desconectar' ele?

0

Eu posso rodar o Sublime, por exemplo, em segundo plano digitando

sublime-text &

O & coloca-o em segundo plano para que eu possa continuar a executar comandos no meu terminal. Como alternativa, posso correr

sublime-text

Que bloqueia o meu terminal. Se eu pressionar Ctrl + Z , ele "suspende" o aplicativo que essencialmente o congela (eventualmente ele ficará cinza). Digitar bg move para o segundo plano e desbloqueia o terminal.

Em qualquer caso, se eu sair do terminal ou digitar fg e, em seguida, Ctrl + C , o aplicativo será fechado.

Como faço para "desconectar" o aplicativo GUI do terminal para que ele não não seja fechado, caso eu feche o terminal ou pressione Ctrl + C Em outras palavras, eu gostaria de usar o terminal como um lançador, o que é particularmente conveniente quando eu quero abrir um arquivo específico: por exemplo, sublime-text /path/to/my/file <super-secret-character-that-disconnects-the-app-not-just-puts-it-in-the-bg> .

    
por mpen 25.03.2014 / 22:58

3 respostas

3

Você pode usar o comando disown para desanexar processos em segundo plano do terminal.

Se você tiver apenas um trabalho em segundo plano em execução, basta usar

disown

e o proprietário deste processo em segundo plano não será mais o terminal, por isso continuará funcionando mesmo depois que o terminal for fechado.

    
por cgty 26.03.2014 / 01:38
3

No bash, use o comando disown para corrigir um processo existente. Para obter a lista de processos em segundo plano anexados ao shell atual, use o comando jobs . Em seguida, para rejeitar o processo desejado, use disown % <job number> . Abaixo está um exemplo de como rejeitar o xload.

jobs
[1]+  Stopped                 man man
[2]-  Running                 xload &
[3]-  Running                 xeyes &

disown %2

Para evitar o problema desde o início, use o comando nohup. Então eu adicionaria essa linha ao seu arquivo .bashrc:

alias sublime-text='nohup sublime-text'  

Em seguida, digite sublime-text < filename> & .

    
por Jeffery Williams 26.03.2014 / 02:15
1

nohup gedit & . Agora você pode simplesmente pressionar enter para continuar inserindo comandos e outras coisas e se você fechar o terminal, o gedit permanecerá aberto.

    
por Jo-Erlend Schinstad 26.03.2014 / 17:01