父子进程和 fork
前言
在前文从冯诺依曼体系到进程中,我们认识了进程的概念。在操作系统中,进程是程序执行的基本单位。Linux下进程是由一个个的task_struct组织起来的。Linux通过task_struct结构体管理进程,其中包含进程的所有属性。本文将从进程的标识符(PID)入手,深入探讨如何通过fork系统调用创建子进程,并分析其背后的深层次原理。
1. 进程的标识符 PID
每个进程都有一个唯一的进程标识符(PID),用于在系统中唯一标识该进程。
1.1 查看系统内所有的进程
在Linux中,可以通过ps命令查看进程的 PID。
命令:ps
选项:aux等
ps -ef # 显示所有进程的详细信息
ps aux # 显示所有用户的所有进程,重在用户
# 我们一般上使用 ps aux 查看系统内所有的进程
ps aux | head -1 && ps aux | grep proc | grep -v grep
ps aux 演示:
我们一般在进行 grep 进程时,会过滤出 grep 命令本身,因为 grep 命令也是一个进程。
隐藏掉 grep 关键字的命令:ps aux | head -1 && ps aux | grep proc | grep -v grep
&&表示左边的命令执行完,紧接着执行右边的命令。左边的命令执行成功,右边的命令也要执行成功。ps aux | head -1 && ps aux | grep proc该命令得到的结果会同时显示proc进程和grep进程。- 如果我们不想显示
grep进程,可以使用管道,对上述命令的结果再进行grep ps aux | head -1 && ps aux | grep proc | grep -v grep-v选项配合管道,在已有的结果中反向匹配 grep,可以隐藏掉grep关键字
- 如果我们不想显示
1.2 kill 杀掉进程
命令:kill [选项] PID
常用选项:


