如何恢复到由 ssh 触发的进程?

如何恢复到由 ssh 触发的进程?

我正在通过 WiFi 临时使用一些 Raspberry Pi -2 和一台 Ubuntu 笔记本电脑(14.04 LTS)。我有一些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 上的脚本会继续运行(一些套接字程序!)。

我想返回 Pi 上的脚本,可以吗?我的意思是,当我再次ssh -6访问 pi 的地址时,我实际上可以转到进程仍在运行的终端吗?据我所知,tty在使用时我无法使用 Pi 的不同 s ssh

笔记 :

我真的不确定我是否应该在这里或服务器故障请您指导我!

答案1

您无法使用普通的 ssh 返回到同一个终端(一旦 ssh 断开连接,pty 就会被销毁),事实上当您在“批处理模式”下运行命令时,终端 – 仅原始标准输出。(-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"

使用 dtach:

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"

相关内容