进程关系与守护进程
# 进程关系与守护进程
# bash 进程与终端
# 什么是终端?
计算有输入单元、主机【CPU、内存】、输出单元
一般来说输入单元以键盘为例,输出单元我们一般认为是显示器[音频输出 - 音响设备],一般我们将输入输出单元统称为终端。也就是说终端,能产生数据,也能显示数据。
- 物理终端:传统的显示器和键盘【vga、usb 接口】
- 软件终端[伪终端]:主要是通过
tcp/ip
协议实现的终端,它能模拟出来一个能实现数据输入和输出的终端,比如:ssh、telnet...
- 只要能实现数据输入[
read
、write
]和数据输出的统称为终端
在
linux
中有物理终端,也有伪终端,当我们通过putty
工具登录的时候,底层协议走的是tcp/ip
协议。
sshd
通信步骤:
sshd
服务会打开一个dev/ptmx
这个文件,它是一个伪终端主设备文件bin/bash
会打开有一个dev/pts[0,1...]
它也是一个伪终端
ptmx/ptsx
它们底层通过伪终端设备驱动程序模拟出输入和输出的功能。
bin/bash
进程就可以实现数据读取和数据写入的功能。
- 输入单元
ssh客户端
/bin/bash
进程- 输出[
ssh
客户端]
引用:
https://blog.csdn.net/yazhouren/article/details/78793367 (opens new window)
bin/bash
主要是启动之后,对终端数据的读取和写入就是通过pts
实现的【能实现标准输入和标准输出】
dev/pts0 0 1 2 标准输入 标准输出 标准错误
1
我们可以通过strace
命令来查看追踪sshd
服务
strace -f -s 65500 -o sshdx.log -p 1590
1
然后我们再打开一个终端进行连接,输入密码等操作之后,可以看到监听的地方创建了很多进程
然后我们在另外一个终端里输入一个ls
命令,再把监听关掉,我们去查看生成的一个sshdx.log
文件。
我这边可能ctrl c
过早了,生成的数据可能不太全,还是得我们自己额外去查看日志文件的指令步骤,再结合上述的引用的图的结构去解析指令步骤。
编辑 (opens new window)
上次更新: 2022/05/13, 00:01:31