You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH接管远程Linux机器Machine A上PID 123的Shell进程

如何接管远程Linux机器上的Shell进程

当然可以实现!你可以借助reptyr这个实用工具,远程接管Machine A上PID为123的Shell进程,具体操作步骤如下:

操作步骤

  • 第一步:SSH连接到Machine A
    先从Machine B的终端建立到Machine A的SSH连接:

    ssh your_username@machine_a_hostname_or_ip
    

    把your_username替换成Machine A上的用户名,machine_a_hostname_or_ip替换成Machine A的主机名或IP地址。

  • 第二步:安装reptyr(如果未安装)
    检查Machine A是否已安装reptyr,直接输入reptyr --version验证。如果没有安装,根据系统包管理器执行对应命令:

    • Debian/Ubuntu 系列:
      sudo apt update && sudo apt install reptyr
      
    • RHEL/CentOS/Fedora 系列:
      sudo dnf install reptyr  # 或者用 yum,取决于系统版本
      
  • 第三步:切换到进程所属用户
    reptyr需要以目标进程的所属用户身份执行(避免权限问题),如果当前SSH用户不是进程所属用户,执行:

    su - target_process_username
    # 或者用 sudo 切换
    sudo -u target_process_username bash
    

    把target_process_username替换成PID 123进程的所属用户名。

  • 第四步:接管目标进程
    执行以下命令完成接管:

    reptyr 123
    

    执行后,当前的SSH会话就会接管PID为123的Shell进程,你可以看到原Shell的历史输出,也能直接在这个会话中输入命令操作。

注意事项

  • 确保你拥有足够的权限:要么是目标进程的所属用户,要么具备sudo权限,否则无法接管进程。
  • 如果目标Shell正在执行阻塞式命令(比如top或者一个长时间运行的脚本),接管后需要先退出该命令才能正常操作Shell。
  • 如果你原本的Shell是在screen或tmux中启动的,也可以通过重新连接对应的screen/tmux会话来恢复,但reptyr的优势是无需提前配置,适用于任何已运行的Shell进程。

内容的提问来源于stack exchange,提问作者Agnel Kurian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:05:21