是否有某种类型的包可以保存这样的终端实例:
some_package instance_name python3.9 main.py
关闭终端
some_package instance_name
显示所有终端消息,就好像我从未关闭它一样。
我正在通过 ssh 连接到机器,有时我必须带着笔记本电脑离开,这会导致连接中断,所以我看不到终端,是否有一个包可以保存实例,以便我可以再次调用它,它会再次显示输出?
谢谢。
答案1
有一个名为 的工具screen
。登录服务器后,只需键入,screen
从现在开始,您的会话将在screen
提供的虚拟终端中运行,这意味着它将“保持活动状态”并仍在运行,即使您关闭终端也是如此(但如果您键入则不会exit
- 这将终止!)。您还可以在会话中按 Ctrl+A 然后按 Dscreen
有目的地断开会话,会话仍将运行。然后您可以注销服务器。screen
screen
正如评论中所说,重新连接到服务器后,输入screen -dr
,您应该重新连接到您的会话。如果您只有一个断开连接的screen
会话,则无需在 后输入任何参数screen -dr
。否则,您可以使用 列出screen
您帐户上的所有会话screen -ls
,然后输入 ,screen -dr PID
其中PID
是您想要的会话的 PID。
它并不像你要求的那样“保存”会话,因为会话是一直在奔跑,即使您断开连接后也是如此,这意味着如果您让某个程序运行,它将继续运行并继续将输出(如果有)写入虚拟终端。screen
有一个回滚缓冲区,因此如果您在会话中按 Ctrl+A 然后按 Esc screen
,您可以向后滚动以查看断开连接时程序生成的输出行。但如果输出很多,回滚缓冲区可能不够用。
screen
可以做更多 - 例如,您可以在后台运行多个会话并在它们之间切换,但上面描述的基本用例应该足以满足您的需要。