进程和 fork
1. 进程的标识符 PID
每个进程都有一个唯一的进程标识符(PID),用于在系统中唯一标识该进程。
1.1 查看系统内所有的进程
在 Linux 中,可以通过 ps 命令查看进程的 PID。
命令:ps
选项:ajx 等
ps -ef # 显示所有进程的详细信息
ps aux # 显示所有用户的所有进程,重在用户
# 我们一般上使用 ps ajx 查看系统内所有的进程
ps ajx # 查看系统内所有的进程 ./proc # 以运行 proc 进程为例
ps ajx | head -1 && ps ajx | grep proc
ps ajx | head -1 && ps ajx | grep proc | grep -v grep
隐藏掉 grep 关键字的命令:ps ajx | head -1 && ps ajx | grep proc | grep -v grep
&&表示左边的命令执行完,紧接着执行右边的命令。左边的命令执行成功,右边的命令也要执行成功。ps ajx | head -1 && ps ajx | grep proc该命令得到的结果会同时显示 proc 进程和 grep 进程。- 如果我们不想显示 grep 进程,可以使用管道,对上述命令的结果再进行 grep。
ps ajx | head -1 && ps ajx | grep proc | grep -v grep-v选项配合管道,在已有的结果中反向匹配 grep,可以隐藏掉 grep 关键字。
1.2 kill 杀掉进程
命令:kill [选项] PID
常用选项:-9
功能:
kill PID是温柔的杀掉这个进程。kill -9 PID向指定 PID 的某个进程发送 9 信号,暴力的杀掉这个进程。
演示:
kill -9 760776 # 强制终止 PID 为 760776 的进程
当使用不带 -9 选项的 kill PID 命令时,默认会向目标进程发送 SIGTERM 信号(信号编号为 15)。与 kill -9(发送 SIGKILL 信号)的强制终止不同,SIGTERM 是一种更友好的终止方式。
kill PID(默认发送 SIGTERM)的行为:
- 允许进程优雅退出:进程收到 SIGTERM 后,可以执行清理操作(如保存数据、关闭文件、释放资源等),然后自行终止。
- 进程可以捕获或忽略 SIGTERM:如果进程代码中注册了信号处理函数(例如通过 signal() 或 sigaction()),它可以自定义对 SIGTERM 的响应(如延迟退出或忽略信号)。
- 可能无法立即终止进程:如果进程因代码缺陷、死锁或无限循环无法响应 SIGTERM,它可能不会退出。此时需手动使用
kill -9强制终止。
kill -9 PID(发送 SIGKILL)的行为:
- 强制立即终止进程:SIGKILL 信号无法被进程捕获或忽略,操作系统会直接终止进程,不给进程任何清理的机会。


