Я использую Raspberry Pi -2 и ноутбук Ubuntu (14,04 LTS) в режиме ad-hoc по WiFi. У меня есть несколько скриптов python3 которые я обычно запускаю, используя ssh -6 (так как я использую локальные адреса IPv6) для запуска моего скрипта python3.

Например:

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

чтобы убить скрипт на сокете я использую:

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

Это запустит скрипт на Raspberry Pi и, если я не использую CTRL+C, я, конечно, увижу вывод скриптов на моем терминале. Но я провожу некоторые эксперименты, в которых я обычно выхожу из терминала, а скрипт на Pis продолжает работать (некоторые программы для сокетов!).

Я хочу вернуться к сценарию на Пи, это возможно? Я имею в виду, когда я снова получаю ssh -6 по адресу pi, могу ли я на самом деле перейти в терминал, где процесс все еще выполняется? Насколько я помню, я не могу использовать разные tty Пи при использовании ssh .

Замечания :

Я действительно не уверен, если я должен опубликовать это здесь или на ServerFault, пожалуйста, будьте любезны, чтобы направить меня!

1 ответ1

1

Вы не можете вернуться к тому же терминалу с простым ssh (pty уничтожается, как только ssh отключается), и на самом деле нет терминала, когда вы запускаете команды в "пакетном режиме" - просто raw stdout. (Там -t чтобы заставить терминал, хотя.)

Однако вы можете сделать это с терминальными мультиплексорами, такими как tmux , screen или dtach , которые в основном написаны для этой конкретной цели:

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

ssh -t myserver "tmux attach -n myscript"

ssh myserver "tmux kill-session -t myscript"

С дтач:

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

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

С экрана:

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

ssh -t myserver "screen -r myscript"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .