- 前言
- 一 ps 指令
- 1 ps a
- 2 ps u
- 3 ps x
- 4 pa aux
- 5 ps ajx
- 二 kill 指令
- 1 循环 父进程 信号 和部分指令讲解
- 2 | ,R+,S+
- 3 生成一对 存在的文件和 可执行文件
- 4 开始终止父进程信号
前面讲了 1 父进程是从main函数开始执行的 并且父进程调用fork之后 克隆出子进程 2 fork 执行之后 只有子进程工作 3 fork 执行之后 子进程会抢占 父进程的资源 出现父进程执行的假象 实则是子进程在运行 相当于子进程 多执行了一个if判断 4 main 也是进程 shell 命令行 也是进程 所以 会和父子进程 抢占资源 导致 输出顺序有时会不正常。 5 继续学 新知识一 ps 指令 1 ps a
显示所有程序 和其他用户程序2 ps u
user :用户 显示以用户为主的 程序3 ps x
一 显示所有程序 就是不以终端机区分 1 因为终端机也是进程 2 不以终端机区分 就是和他有关无关都可以在显示一起。 比如 就像 不以我区分你 意思是你我都平等 都可以在一起 敲代码 讨论 都不嫌弃。4 pa aux
123点的总和5 ps ajx
显示 ppid pid (父子进程的) COMMAND:命令二 kill 指令
kill : 终止
怎么看 SIGTENRM 的信息呢
kill -l -l :寻找
实际的排序并没64 个 大概 只有60多1 循环 父进程 信号 和部分指令讲解
先改改代码
#include#include #include #include int main() { pid_t a; a=fork(); if(a>0) { while(2)//变为循环 { printf("father pid is %dn",getpid()); } } else if(a==0) { printf("child pid is %d ppid is %d n",getpid(),getppid()); } return 0; }
让 父进程不断循环 待会用 kill 指令 验证他的作用
1 先 生 成 可执行文件 ./a.out
2 查看 对应的 pid 序号
ps aux 前面 讲了 gerp :查找
主要讲 | R+ S+ 的意思
2 | ,R+,S+| : 是管道的意思 (内核一段缓存)
用户读取数据 管道就是缓存 数据 不断如此,单向读写。
R+ :可执行 状态 (对应二进制文件)
S+ :可中断 状态(c文件)
因为中断函数 和普通函数 区别只不过 多了一个触发条件而已 本质都是一样的。
不明白 看 《上电之后main函数如何被cpu运行的 》
再不懂 往前看完 之前 关于这篇的分步 讲解。
注意 会至少存在两个进程 1 :c文件 2 二进制文件 并且是存在的
如果是这样呢
先看 aaaaaa 存不存在
因为不存在 所以用户没读到 但是 管道 写了 所以显示4 开始终止父进程信号
kill -9 发送 终止 信号 -9 发送信号 (强制性)
kill -9 18428 终止父进程循环 信号 1 18428:是父进程的pid 2 注意 终止的是对应的 c文件 而不是 二进制文件 因为杀死的c文件 相当于源头没有了 所以就xxx
验证成功



