A saída no fechamento do terminal é causada por uma das duas coisas:
- Obtendo um EOF em stdin
- Recebendo um SIGHUP
No meu teste, tanto o xterm quanto o Konsole fazem isso, então não está claro porque o comportamento seria diferente, a menos que você esteja recebendo sinais quebrados aleatoriamente de um bug recente da nVidia (embora agora corrigido) (veja Após a atualização, o botão X na barra de título não mais fecha o xterm .
Você pode usar nohup
para garantir que nenhum deles saia.
Observarei, no entanto, que a sintaxe -e
varia entre os emuladores de terminal. Por exemplo, konsole -e 'sleep 60'
sairá imediatamente; xterm -e 'sleep 60'
esperará 60 segundos. Se você remover as marcas de cotação - passando cada argumento como um argumento separado -, isso funcionará em ambos os terminais.
$ konsole -e sleep 60 # works
$ xterm -e sleep 60 # works
$ konsole -e 'sleep 60' # FAILS
$ xterm -e 'sleep 60' # works
Estritamente falando, a Política Debian diz que x-terminal-emulator -e
deve funcionar como no xterm, mas especifica um comportamento que o xterm teve em um ponto (falharia no último caso) ... mas o xterm mudou seu comportamento. Veja Debian Bug 648271, 11.8.3 "Pacotes que fornecem um emulador de terminal", diz xterm - a opção diretamente para exec .
Então, pode ser que você esteja usando -e
errado; você deveria estar fazendo:
cd ~/.btsync/; konsole -e ./btsync --nodaemon
Observe a falta de citações.