如何将正在运行的进程移入 tmux 或者 screen中

有时在处理一些耗时很长的事情时,我仍然会忘记打开tmux或screen会话。我开始担心ssh断开连接或其他事情。

因此,一个明显的解决方案是终止进程,并在新创建的tmux或screen会话中运行它——但是,如果进程运行了一段时间,而我不想终止它,因为我要么失去进度,要么最终陷入混乱,该怎么办?与其终止并重新运行进程,不如将其移动到tmux或screen会话中更加顺畅。这涉及到更改进程的父进程,这并不是一件简单的事情,但谢天谢地nelhage为此开发了一个工具: reptyr

至于用法,非常简单:

  1. 使用 Ctrl-Z 暂停相应的进程
  2. 使用 bg 将作业发送到后台
  3. 使用 disown %1从shell中夺走所有权
  4. 启动或进入tmux/screen会话: tmux/screen
  5. 查找进程的PID: pgrep myappname
  6. 运行 reptyr PID 将进程附加到当前的shell中

安装 reptyr

二级制安装

yum -y install reptyr

源码编译安装

$ git clone https://github.com/nelhage/reptyr.git
$ cd reptyr/
$ make
$ sudo make install

<<<<<< [完] >>>>>>

猜你喜欢

转载自blog.csdn.net/wjw465150/article/details/129114493
今日推荐