Wie kann man zu einem durch ssh ausgelösten Prozess zurückkehren?

0

Ich benutze einige Himbeer-Pi-2 und ein Ubuntu-Laptop (14.04 LTS) in Ad-hoc-Mode über WiFi. Ich habe einige python3Skripte, die ich normalerweise mithilfe von auslöse ssh -6(da ich IPv6-Link-Local-Adressen verwende ), um mein Python3-Skript auszulösen.

Zum Beispiel:

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

Um das Skript auf dem Socket zu beenden, benutze ich:

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

Dies wird das Skript auf dem Himbeer-Pi auslösen und wenn ich nicht CTRL+ Cbenutze, werde ich natürlich die Ausgabe der Skripte auf meinem Terminal sehen. Aber ich führe einige Experimente durch, bei denen ich normalerweise aus dem Terminal entkomme und das Skript auf dem Pis ausgeführt wird (einige Socket-Programme!).

Ich möchte zum Skript auf dem Pi zurückkehren. Ist das möglich? Ich meine, wenn ich noch einmal ssh -6an die Adresse des Pi gehe, kann ich dann tatsächlich zu dem Terminal gehen, an dem der Prozess noch läuft? Soweit ich mich erinnere, kann ich die verschiedenen ttys des Pi während der Verwendung nicht verwenden ssh.

Hinweis :

Ich bin mir wirklich nicht sicher, ob ich das hier oder auf ServerFault posten soll.

Shan-Desai
quelle
screen, tmuxkönnte tun, was Sie wollen, aber es ist wirklich schwer zu verstehen, was Sie versuchen zu beschreiben ...
Jakuje

Antworten:

1

Sie können nicht mit normalem ssh zum selben Terminal zurückkehren (die Pty wird zerstört, sobald ssh getrennt wird), und tatsächlich gibt es kein Terminal, wenn Sie Befehle im "Batch-Modus" ausführen - nur raw stdout. (Es ist -tjedoch ein Terminal zu erzwingen.)

Sie können dies jedoch mit Terminal-Multiplexern wie tmux, screenoder tun dtach, die meist genau für diesen Zweck geschrieben wurden:

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

ssh -t myserver "tmux attach -n myscript"

ssh myserver "tmux kill-session -t myscript"

Mit dtach:

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

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

Mit Bildschirm:

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

ssh -t myserver "screen -r myscript"
Grawity
quelle
Hallo, ich brauche einen kurzen Tipp, wenn ich zum Beispiel Folgendes tue: tmux new-session -d -s mySession './myscript.py'und wenn ich mit anhänge, tmux attach -t mySession kann ich sehen, wie mein Skript ausgeführt wird. Jetzt möchte ich die Sitzung verlassen, ohne das Skript anzuhalten. Ich möchte nicht verwenden, <kbd>CTRL</kbd>+<kbd>C</kbd>wie ich die Hotkeys in Tmux verwenden kann, um die Sitzung sicher zu beenden, ohne sie zu beenden. Es sollte so etwas sein , <kbd>CTRL</kbd>+ <kbd>B</kbd>dann <kbd>:</kbd>und was mehr?
Shan-Desai
Ah! vergiss, dass du es gefunden hast! In der Sitzung brauche ich <kbd>ctrl</kbd>+ <kbd>b</kbd>+<kbd>z</kbd>
Shan-Desai
auch das ssh -t myserver "tmux a"oder ssh -t myserver "tmux attach -t myscript"bringt mich in die Sitzung, aber ich kann dann das Befehlsfenster nicht verlassen, von dem sshes dort hängen bleibt
Shan-Desai