如果我不知道程序来自什么 ps 或 tty,我该如何使用“screen”命令?

use*_*931 7 ssh gnu-screen tty

我正在制作一个在启动时启动的 python 程序。我想要它,以便我可以通过“屏幕”命令与该程序进行交互。然后,如果我需要通过不同的 tty、ssh 或其他方式与程序交谈,那么我就可以了。

我喜欢保留它,这样我就可以使用 bash 脚本将屏幕附加到我的终端中,而不必查找它的位置——因为我需要其他人(不使用终端的人)能够访问它。

200*_*ess 1

附加到正确屏幕会话的最可靠方法是让 Python 脚本写入指定文件以报告screen它正在哪个会话中运行。可以将其视为类似于 PID 文件,只不过您报告的是 TTY 而不是进程 ID。否则,如果screen存在多个会话,就会涉及猜测。

\n\n

因此,在启动 Python 进程时,运行

\n\n
echo "$STY" > /var/run/python-proc.screen\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\xa6 或来自 Python 程序本身,

\n\n
with open(\'/var/run/python-proc.screen\', \'w\') as f:\n    print(os.environ[\'STY\'], file=f)\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,用户可以通过运行附加到它

\n\n
screen -x -m `cat /var/run/python-proc.screen`\n
Run Code Online (Sandbox Code Playgroud)\n