一.进程与线程概念
Linux 进程相关知识点与命令合集(一)_蒋小圆的博客-CSDN博客
二.进程查看
Linux进程五种状态:
1.运行(R TASK_RUNNING 正在运行或在运行队列中等待)
2.中断(S TASK_INTERRUPTIBLE 休眠中,受阻,或在等待某个条件形成或者接受到信号)
3.不可中断(D TASK_UNINTERRUPTIBLE 收到信号不唤醒和不可运行,进程必须等待直到有中断发生,无法使用kill关闭)
4.暂停 (T TASK_STOPPED/TASK_TRACED 该状态表示该进程已经停止执行,并且不具有再次执行的条件。向进程发送SIGSTOP,进程相应进入TASK_STOPPED,除非进程处于TASK_UNINTERRUPTIBLE状态不响应信号。进程被跟踪时,处于TASK_TRACE状态)
5.僵死(Z TASK_DEAD/EXIT_ZOMBIE 进程在退出的过程中,处于TASK_DEAD状态,如果它的父进程没有收到SIGCHLD信号,故未调用wait(如wait4、waitid)处理函数等待子进程结束,又没有显式忽略该信号,它就一直保持EXIT_ZOMBIE状态。只要父进程不退出,这个EXIT_ZOMBIE状态的子进程就一直存在,这也就是所谓的"僵尸"进程。进程已终止,但是进程描述符存在,直到父进程调wait4()系统调用后释放.)
6.退出状态(X TASK_DEAD-EXIT_DEAD进程即将被销毁,此状态存在时间非常短,几乎不可能通过ps命令捕捉到)
1.ps 查找与进程相关的PID号
ps 状态码:
常用参数:
ps -a | 显示现行终端下所有程序,包括其他用户的程序 |
ps -A | 显示所有进程 |
ps -H | 显示树状结构,表示程序之间的相互关系 |
ps -e | 显示所有程序,同A |
ps -f | 全格式显示进程 |
ps a | 显示当前终端下执行的进程 |
ps c | 列出程序时,显示每个程序真正的指令名称,不包含路径参数常驻服务标识 |
ps e | 列出程序所使用的环境变量 |
ps f | ASCII 字符显示树状结构,表达程序之间的相互关系 |
ps x | 显示所有进程,无论是否运行在终端上 |
ps u | 显示用户相关的进程以及与用户相关的属性(-u 指定用户) |
ps r | 只显示正在运行的进程 |
1>当前时间点那个进程占用的资源最多:ps -aux |less (less用于返回结果很长方便查阅)
根据指定参数排序:ps -aux --sort -%cpu |less (--sort=[+|-] key +升序,-降序,key为某一列名称)
2>根据用户过滤进程:ps -u root
3>根据服务名查找对应的进程:ps -aux |grep 服务名
返回信息参数含义为:
USER用户 PID进程号 %CPU进程所占CPU %MEM进程所占内存百分比
VSZ进程所占虚拟内存大小 RSS进程所占实际内存的大小
TTY显示运行的终端,若与终端无关,显示?
STAT进程状态 START进程启动时间 TIME进程实际占用CPU时间
COMMAND该进程对应的执行程序
2.jobs 查看当前有多少在后台运行的命令
jobs -l 列出后台作业情况