Como sair do iterminal em um script bash?

0

Eu gostaria de iniciar o emacs com proxychains com um script bash em um terminal e sair do terminal. Mas o código

(proxychains emacs &)
exit 0

não saia do terminal. Existe alguma maneira?

    
por user219155 21.09.2018 / 04:17

1 resposta

0

Experimente este script de teste.

t.sh

#!/bin/bash
sleep 5
echo bye bye
sleep 5
pid=$( ps -f | grep "bash" | grep -v grep )
kill -HUP $pid

OK, abra uma nova janela de terminal de linha de comando. A partir dessa janela, execute o script bash recém-criado (assuma que você o nomeou "t.sh" como acima).

bash t.sh

Você deve ver a janela de linha de comando desaparecer após 10 segundos, pois o shell script comete suicídio matando o processo bash que o lançou.

Acho que pode ter sido uma maneira mais fácil de fazer isso, mas não me lembro o que era.

De qualquer forma, da sua descrição, presumo que seja isso que você deseja realizar.

EDITAR:

Na verdade, não gosto da solução acima. Parece-me que o que você provavelmente realmente quer fazer é executar o script bash em segundo plano e usar "nohup" para que você possa fazer logoff.

O que acontece, então, é que o processo continuará a ser executado até que seja concluído e, em seguida, vai embora, essencialmente o que eu acho que você está pedindo.

Você pode fazer isso da seguinte forma:

t1.sh

#!/bin/bash
echo "I am doing my thing then leaving" > /tmp/t1.log
sleep 10
exit 0

Então, a partir da linha de comando:

nohup bash t1.sh &

depois vá em frente e faça logoff.

Volte 15 segundos depois, você deve ter um arquivo, "/tmp/t1.log", com sua saída.

    
por 21.09.2018 / 05:00

Tags