如何从Linux中的其他终端访问一个终端上运行的进程?

时间:2011-11-16 06:02:32

标签: linux process terminal

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

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

4 个答案:

答案 0 :(得分:12)

你想要reptyr之类的东西吗? (https://github.com/nelhage/reptyr

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

编辑:

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

答案 1 :(得分:3)

使用屏幕实用程序从终端启动任何进程,以便您可以从本地或远程从任何其他终端访问同一进程。例如:

从第一个终端

  1. 使用screen -dR test启动屏幕并点击 Enter ,您将在屏幕内获得shell。
  2. 在此运行程序
  3. 从第二个终端

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

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

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

      希望以上提示能为您提供帮助。

答案 2 :(得分:1)

我们在谈论SSH吗?如果洙...

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

    ssh user @ host

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

    ps aux |少

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

  • 按“userName”查看流程

    ps -u userName

  • 查找流程

    pgrep firefox

  • 杀死进程

    示例:

    pidof firefox

    输出:(您的号码会有所不同。)

    2786

    现在杀人:

    杀死2786

高级

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

    pstree

  • 可能有兴趣研究atop

    顶上

答案 3 :(得分:0)

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