Linux 进程
- Linux中,每个程序都有自己的一个进程,每一个进程都分配一个唯一的 PID。
- 每一个进程,都会对应一个父进程,父进程可以创建一个或多个子进程。
- 进程可以以两种方式存在,前台进程与后台进程(守护进程—daemon)。
- 前台进程:用户使用的有控制终端的进程。
- 后台进程(守护进程):当前没有使用的但是也在运行的进程,它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
- 后台进程基本上不和用户交互,优先级别稍低。
- 前台的进程和用户交互,需要较高的响应速度,优先级别稍高。
PS(查看进程)
ps [选项] #查看进程 -a #查看当前终端的所有进程信息 -u [用户名] #以用户的形式显示进程信息 -x #显示后台进程运行的参数 -A #列出所有的进程 -aux #显示所有包含其他使用者的行程(常用)
-aux 输出格式
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- USER:行程拥有者。
- PID:进程号。
- %CPU:占用的 CPU 使用率。
- %MEM:占用的内存使用率。
- VSZ:进程占用的虚拟内存大小(单位:KB)。
- RSS:进程占用的物理内存大小(单位:KB)。
- TTY:终端。
- STAT:进程状态。
- D: 无法中断的休眠状态 (通常 IO 的进程)。
- R: 正在执行中。
- S: 静止状态。
- T: 暂停执行。
- Z: 不存在但暂时无法消除。
- W: 没有足够的记忆体分页可分配。
- <: 高优先序的行程。
- N: 低优先序的行程。
- L: 有内存分页分配并锁在内存内。
- STARTED:进程启动的时间。
- TIME:执行时间,即进程使用 CPU 的总时间。
- COMMAND:启动进程所用的命令和参数。
查找指定进程
ps -aux|grep 进程关键字 #查找包含进程关键字的进程(常用) | #管道符(A|B 表示将命令A的输出结果作为命令B的操作对象)。 grep 进程关键字 #查找文件里符合条件的字符串。 # 上述命令的意思就是先查询所有进程,然后过滤出需要的进程。
查看父进程
ps -ef|grep 进程关键字 #查找包含进程关键字的进程及其父进程(使用 pstree 更直观)
- UID:用户ID。
- PID:进程ID。
- PPID:父进程ID。
- C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算, 执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高。
- STIME:进程启动的时间。
- TTY:终端。
- TIME:执行时间,即进程使用 CPU 的总时间。
- CMD:启动进程所用的命令和参数。
pstree(查看进程树)
pstree [选项] #查看进程树(更直观的查看父进程信息) -p #显示进程 PID -u #显示进程用户组
kill(终止进程)
kill -9 PID #终止该 PID 进程 -9 #表示强迫进程立即停止。 killall 进程名 #终止该进程名所有进程 • 1 • 2 • 3 • 4
- 终止进程相当于 Windows 结束任务。
- 一般用于发生死锁或死循环,需要手动结束进程。