Ich benutze einige Himbeer-Pi-2 und ein Ubuntu-Laptop (14.04 LTS) in Ad-hoc-Mode über WiFi. Ich habe einige python3
Skripte, 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 -6
an 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 tty
s 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.
quelle
screen
,tmux
könnte tun, was Sie wollen, aber es ist wirklich schwer zu verstehen, was Sie versuchen zu beschreiben ...Antworten:
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
-t
jedoch ein Terminal zu erzwingen.)Sie können dies jedoch mit Terminal-Multiplexern wie
tmux
,screen
oder tundtach
, die meist genau für diesen Zweck geschrieben wurden:Mit dtach:
Mit Bildschirm:
quelle
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?<kbd>ctrl</kbd>
+<kbd>b</kbd>
+<kbd>z</kbd>
ssh -t myserver "tmux a"
oderssh -t myserver "tmux attach -t myscript"
bringt mich in die Sitzung, aber ich kann dann das Befehlsfenster nicht verlassen, von demssh
es dort hängen bleibt