Dev*_*lar 254 linux vnc gnu-screen
我的办公室工作经常看到我通过 VNC 连接到 Linux 机器。
有时我在控制台上启动远程作业,后来意识到它运行的时间比预期的要长得多。(应该首先在 Screen 下启动那个...)
我不想为了保持 VNC 会话打开而让我的工作站通宵运行;我想将已经在运行的远程作业移动到 Screen 会话中(在远程盒子上),这样我就可以关闭工作站(并在第二天早上重新连接)。
如果有的话,如何做到这一点?
小智 253
看看reptyr,它就是这样做的。github 页面包含所有信息。
reptyr - 一种用于“重新制作”程序的工具。
reptyr 是一个实用程序,用于获取现有正在运行的程序并将其附加到新终端。通过 ssh 启动了一个长时间运行的进程,但必须离开并且不想中断它?只需启动一个屏幕,使用 reptyr 抓取它,然后终止 ssh 会话并回家。
用法
爬虫PID
“reptyr PID”将获取 id PID 的进程并将其附加到您当前的终端。
附加后,该进程将从新终端获取输入并将输出写入新终端,包括 ^C 和 ^Z。(不幸的是,如果您将其作为后台处理,您仍然需要在旧终端中运行“bg”或“fg”。如果不修补您的 shell,这可能无法以合理的方式修复。)
ear*_*arl 51
你不能轻易做到这一点。我建议养成在打开控制台后做的第一件事时启动屏幕的习惯。
但是,对于您的实际问题,您还可以尝试另一件事:从终端启动您的工作后,通过输入 ctrl-z 和bg. 之后,将作业与它的父 shell 分离;在 bash 你会做的disown -h %<jobid>。之后,您可以安全地关闭终端,作业将继续运行。
Rob*_*lls 40
当您使用 Linux 时,在新启动的 screen 进程中使用 retty 怎么样?
$ screen -S my_process
$ retty $(pgrep my_process)
/redraw
Run Code Online (Sandbox Code Playgroud)
HTH
干杯,
| 归档时间: |
|
| 查看次数: |
180437 次 |
| 最近记录: |