将运行进程移动到screen

16 篇文章 1 订阅

本篇来由是因为我在甲骨文的arm64实例上训练一个模型,结果跑了2小时后发现忘记开screen了。所以问题就变成如何将一个运行中的进程移动到screen当中。

有一个工具reptyr可以实现这个功能。
下面是具体用法,以x86架构的Ubuntu为例(文末会提到如何在arm64下安装)。

# 安装reptyr
sudo apt install -y reptyr
# 切换到进行运行的终端窗口
# 1. 将进程挂起
ctrl+z
# 2. 将进程放到后台运行(如果只有一个进程,1可以省略)
bg 1
# 3. 解除从属关系(如果只有一个进程,1可以省略)
disown -h 1
# 4. 开启一个新的screen,<screen_name>使用一个实际名称替代
screen -S <screen_name>
# 5. 查看进程pid(根据具体情况三选一)
ps -ef|grep <name>
# 或者
top
# 或者
ps aux
#6. 将进程移到该screen
reptyr <pid>
如果提示权限不足:#Unable to attach to pid <xxxx>: Operation not permitted,那就加上sudo
sudo reptyr <pid>

Note:

  1. fg 命令可以将后台进程重新放到前台。
  2. disown如果不加参数-h ,使用jobs会找不到这个进程,此时fg命令也会无效。

arm64 安装 reptyr

  1. 克隆reptyr仓库
git clone https://github.com/nelhage/reptyr.git
  1. 直接编译(需要安装gcc),然后复制到/usr/bin里面
cd reptyr
make all
sudo cp ./reptyr /usr/bin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值