我创建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
个进程:
答案 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”并查看PID
和PPID
列来查看此关系。 -/bin/bash
列中给定PPID
(或其他)显示的数字将是SCREEN
列中PID
显示的数字。