新建会话时干了什么
在第一次启动xshell时,提供了新建会话选项,创建过程如下:
创建SSH客户端
点击连接后,本地创建了一个SSH客户端,用来与远端的SSH守护进程相连。提供远程操控的服务。
连接SSH服务器
创建TCP连接(22端口-18993),确保双方的可信通信。
创建用户
对用户密码账号信息进行查验。查验通过后,创建新用户(进程)。
创建伪终端文件
该终端文件用于接收用户的输入信息,以及给用户输出信息。
创建bash进程
为每个终端文件创建一个bash进程(解释说明程序),然后用户就可以执行代码操作了
复制会话的时候干了什么
新建用户
通过SSH客户端与SSH守护进程协商查验密码账户后,创建一个新用户
新建伪终端
为每个用户新建一个终端
新建bash进程
为每个终端新建一个bash进程
复制SSH渠道的时候干了什么
复制SSH渠道前必须需要最少有一个会话被建立
在同一个以建立的用户下(PID=185000),创建了多个终端文件+多个bash进程(守护进程),每个终端文件对应一个bash进程
复制会话与复制SSH渠道的区别
复制会话的本质:通过将当前用户登录信息传递给SSH服务端验证来再创建用户(所以在复制的时候,会感觉到明显的延迟),然后为这个新用户创建终端文件+bash进程
复制SSH渠道的本质:在本地已建立的用户下,新建终端文件+bash进程
TIPS:
1. /dev/pts/n
这个文件是终端文件,所有的输入输出均与他有关,向这个文件输入,就是向对应终端输入
2. 守护进程
守护进程的作用是当终端退出时,处于当前终端的进程不会被杀掉。这样就可以一直跑服务了
Linux中守护进程可以通过创建孤儿进程的方式来实现,也可以采用系统调用daemon()来实现