Como reverter para um processo acionado pelo ssh?

0

Estou usando alguns Raspberry Pi -2 e um Laptop Ubuntu (14.04 LTS) de maneira ad-hoc sobre WiFi. Eu tenho alguns scripts python3 que eu normalmente disparo usando o ssh -6 (desde que eu estou usando Endereços Link-Local IPv6 ) para acionar meu script python3.

Por exemplo:

ssh -6 pi@fe80::a1b2:c3ff:fed4:e5g6%wlan0 'python3 myScript.py'

para matar o script no soquete que uso:

ssh -6 pi@fe80::a1b2:c3ff:fed4:e5g6%wlan0 'fuser -k portNumber/udp'

Isto irá disparar o script no Pi framboesa e, a menos que eu use CTRL + C eu irei ver a saída dos scripts no meu terminal. Mas eu estou conduzindo alguns experimentos em que normalmente eu escapei do terminal e o script no Pis é mantido em execução (alguns programas de soquete!).

Eu quero voltar para o script no Pi, é possível? Quero dizer, quando eu mais uma vez ssh -6 para o endereço do pi eu posso realmente ir para o terminal onde o processo ainda está em execução? Pelo que me lembro, não posso usar os diferentes tty s do Pi usando ssh .

Nota:

Eu realmente não tenho certeza se devo postar isso aqui ou em ServerFault por favor, seja gentil o suficiente para me guiar!

    
por Shan-Desai 08.06.2016 / 21:26

1 resposta

1

Você não pode retornar ao mesmo terminal com o ssh simples (a pty é destruída assim que o ssh é desconectado) e, de fato, existe o terminal no quando você executa comandos no "modo batch" - apenas stdout cru. (Há -t para forçar um terminal embora.)

No entanto, você pode fazer isso com multiplexadores de terminal, como tmux , screen ou dtach , que são escritos principalmente para essa finalidade exata:

ssh myserver "tmux new-session -d -n myscript ./myScript.py"

ssh -t myserver "tmux attach -n myscript"

ssh myserver "tmux kill-session -t myscript"

com dtach:

ssh myserver "dtach -n ~/myscript.sock ./myScript.py"

ssh -t myserver "dtach -a ~/myscript.sock"

Com a tela:

ssh myserver "screen -dmS myscript ./myScript.py"

ssh -t myserver "screen -r myscript"
    
por 08.06.2016 / 21:53