【问题标题】:How to get access of process running on one terminal from other terminal in Linux?如何从Linux中的其他终端访问在一个终端上运行的进程?
【发布时间】:2011-12-30 03:36:03
【问题描述】:

我想知道这个过程,以便我可以从终端访问或控制 Linux 中其他终端上运行的进程。

  • 两个终端属于同一个系统。

【问题讨论】:

  • 定义“其他终端”是同一台计算机吗?服务器?
  • 就像 JosephH 所说,这取决于您所说的“获得控制权”。
  • 没有控制一些已经运行的进程这样的事情。最相似的是使用 abhi_ksd 描述的screen
  • 鉴于@onionjake 的回答,这是一个很好的问题。

标签: linux process terminal


【解决方案1】:

我们在谈论 SSH 吗?如果是这样...

  • SSH 进入正在运行进程的主机:

    ssh 用户@host

    然后到查看主机类型上运行的进程:

    ps 辅助 |少

获得控制权?不完全确定这意味着什么,但我列出了一些简单的命令。

  • 按“用户名”查看进程

    ps -u 用户名

  • 查找过程

    pgrep 火狐

  • 杀死一个进程

    例子:

    火狐的pid

    输出:(你的数字会有所不同。)

    2786

    现在是杀戮:

    杀死2786

高级

  • 将正在运行的进程显示为树。

    pstree

  • 可能有兴趣了解atop

    在上面

【讨论】:

    【解决方案2】:

    使用 screen 实用程序从终端启动任何进程,这样您就可以在本地或远程从任何其他终端访问相同的进程。例如:

    从第一个终端

    1. 使用screen -dR test 启动一个屏幕并按Enter,您将在屏幕内获得shell。
    2. 在这里运行你的程序

    从第二个终端

    1. 使用screen -x test 进入现有屏幕

    现在您应该能够看到在第一个终端上运行的进程, 并将完全控制该过程。

    您可以在屏幕实用程序上进行更多调查…… 对于任何系统管理员来说,它都是一个非常有用的工具。

    希望以上提示对您有所帮助。

    【讨论】:

    • 因此,如果您还没有使用 screen 启动该过程,那么您基本上无法控制它并将其带到前台。
    【解决方案3】:

    也许您想要reptyr 之类的东西? (https://github.com/nelhage/reptyr)

    您只需键入 reptyr PID 即可“控制”另一个进程(如 vim 或诸如此类)。

    编辑:

    question 提供有关使用屏幕或 reptyr 等工具的更多信息。

    【讨论】:

    • +1 我刚试过这个,太棒了!我需要在 debian (sudo apt-get install reptyr) 上安装它,但我能够“重新设置”或控制一个已经在运行的进程。比 screen 更好,因为该过程不需要使用任何特殊方式启动(我在桌面上启动它,然后通过另一个系统的 SSH 终端控制它)。
    【解决方案4】:

    我知道这是一个旧线程。但是如果你想要 à linux tty 的副本,你可以使用 conspy http://linux.die.net/man/1/conspy 如果它尚未在您的发行版中,它很小且易于编译

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2020-07-14
      • 2019-11-05
      • 2018-09-23
      • 2017-06-11
      • 2012-01-30
      • 2021-11-18
      相关资源
      最近更新 更多