为什么嵌套屏幕会话中只有一个SCREEN进程?

时间:2015-03-30 06:41:08

标签: linux bash unix gnu-screen

我创建4嵌套屏幕会话,但只有一个SCREEN进程:

[root@localhost ~]# ps -ef | grep SCREEN
root      4852  4851  0 02:57 ?        00:00:00 SCREEN
root      4915  4900  0 02:58 pts/4    00:00:00 grep --color=auto SCREEN

为什么嵌套屏幕会话中只有一个SCREEN进程?我认为应该有4 SCREEN个进程:

2 个答案:

答案 0 :(得分:2)

屏幕窗口中调用screen 不会创建新的屏幕会话。相反,只创建了新的屏幕窗口(就像 ctrl-a c ),并且新的屏幕窗口在同一个中运行屏幕会话。您可以按 ctrl-a w 来验证这一点。但您可以强制它创建新的屏幕会话,例如screen -S session-name

屏幕窗口只是一个虚拟终端,您可以在其中运行shell。 屏幕会话可以视为在同一屏幕进程中运行的所有屏幕窗口的集合。可以使用screen -ls找到会话。

答案 1 :(得分:1)

screen程序创建两个进程来管理伪终端和用户的显示。伪终端的一端连接到实际终端,另一端连接到在screen内运行的外壳。 使用伪终端(例如终端仿真器)的任何程序都可以做到这一点。

  • screen(父进程)
  • SCREEN(子进程,后来是后续shell的父进程,也称为“windows”)。

您可以通过执行“ps -ef”并查看PIDPPID列来查看此关系。 -/bin/bash列中给定PPID(或其他)显示的数字将是SCREEN列中PID显示的数字。