Linux 进程管理是系统运维和开发的核心技能。每个进程都有唯一的进程 ID(PID),父进程 ID(PPID),以及运行状态。
常用进程管理命令:
- ps:查看当前进程状态,常用选项包括 ps aux(显示所有进程)、ps -ef(完整格式显示)、ps -l(长格式显示)
- top/htop:实时监控系统进程和资源使用情况,htop 提供更友好的交互界面
- kill:终止进程,如 kill PID(发送 SIGTERM 信号)、kill -9 PID(强制终止,发送 SIGKILL 信号)
- killall:按进程名终止进程,如 killall nginx
- pkill:按模式匹配终止进程,如 pkill -f "python script.py"
- pgrep:查找进程 ID,如 pgrep nginx
- nohup:让命令在后台持续运行,如 nohup command &
- &:在后台运行命令,如 command &
- jobs:查看当前 shell 的后台任务
- bg/fg:将任务切换到后台/前台运行
进程状态包括:
- R(Running):正在运行或在运行队列中等待
- S(Sleeping):可中断睡眠
- D(Uninterruptible Sleep):不可中断睡眠
- T(Stopped):已停止
- Z(Zombie):僵尸进程
僵尸进程是已完成但父进程尚未读取其退出状态的进程,需要父进程调用 wait() 或 waitpid() 来回收。孤儿进程是父进程已终止但仍在运行的进程,会被 init 进程(PID 1)收养。
进程间通信(IPC)方式包括管道、消息队列、共享内存、信号量、套接字等。