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

当需要防止ssh断开导致进程中断时,可以使用tmux或screen。但如果进程已经运行,不想终止,可以借助reptyr工具来改变进程的父进程,将其移动到tmux或screen会话中。操作包括暂停进程、移交给后台、夺走所有权,然后在tmux或screen会话中使用reptyr和进程PID进行附加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时在处理一些耗时很长的事情时,我仍然会忘记打开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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱游泳的老白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值