wxvirus wxvirus
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

无解的lifecycle

let today = new Beginning()
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • C&C++

  • PHP

    • PHP基础或常见方法

    • Laravel

    • ThinkPHP

    • PHP多进程编程

      • 程序与进程
      • PHP解释器的执行过程
      • 进程环境
      • 解释器文件
      • 进程标识与fork
      • 进程退出
      • 进程exec
      • 进程调度
      • 多进程编写
      • SUID特权进程
      • 进程查看
      • 中断信号
      • 进程关系与守护进程
        • bash 进程与终端
          • 什么是终端?
      • 进程组
      • 会话
      • 守护进程
      • 作业控制
      • 进程间通信
    • swoole

  • Python

  • Go

  • microservice

  • rust

  • Java

  • 学习笔记

  • 后端
  • PHP
  • PHP多进程编程
wxvirus
2022-05-12

进程关系与守护进程

# 进程关系与守护进程

# bash 进程与终端

# 什么是终端?

计算有输入单元、主机【CPU、内存】、输出单元

一般来说输入单元以键盘为例,输出单元我们一般认为是显示器[音频输出 - 音响设备],一般我们将输入输出单元统称为终端。也就是说终端,能产生数据,也能显示数据。

  • 物理终端:传统的显示器和键盘【vga、usb 接口】
  • 软件终端[伪终端]:主要是通过tcp/ip协议实现的终端,它能模拟出来一个能实现数据输入和输出的终端,比如:ssh、telnet...
  • 只要能实现数据输入[read、write]和数据输出的统称为终端

在linux中有物理终端,也有伪终端,当我们通过putty工具登录的时候,底层协议走的是tcp/ip协议。

sshd通信步骤:

  1. sshd服务会打开一个dev/ptmx这个文件,它是一个伪终端主设备文件
  2. bin/bash会打开有一个dev/pts[0,1...]它也是一个伪终端

ptmx/ptsx它们底层通过伪终端设备驱动程序模拟出输入和输出的功能。

bin/bash进程就可以实现数据读取和数据写入的功能。

  • 输入单元ssh客户端
  • /bin/bash进程
  • 输出[ssh客户端]

terminal

引用:

https://blog.csdn.net/yazhouren/article/details/78793367 (opens new window)

bin/bash主要是启动之后,对终端数据的读取和写入就是通过pts实现的【能实现标准输入和标准输出】

dev/pts0 0 1 2 标准输入 标准输出 标准错误
1

我们可以通过strace命令来查看追踪sshd服务

strace

strace -f -s 65500 -o sshdx.log -p 1590
1

然后我们再打开一个终端进行连接,输入密码等操作之后,可以看到监听的地方创建了很多进程

然后我们在另外一个终端里输入一个ls命令,再把监听关掉,我们去查看生成的一个sshdx.log文件。

我这边可能ctrl c过早了,生成的数据可能不太全,还是得我们自己额外去查看日志文件的指令步骤,再结合上述的引用的图的结构去解析指令步骤。

编辑 (opens new window)
上次更新: 2022/05/13, 00:01:31
中断信号
进程组

← 中断信号 进程组→

最近更新
01
vue3配合vite初始化项目的一些配置
07-26
02
网盘系统开发学习
07-24
03
linux多进程
06-19
更多文章>
Theme by Vdoing | Copyright © 2021-2024 wxvirus 苏ICP备2021007210号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式