一.进程原理:
1.进程:计算机中一个运行实体(都有地址空间和系统资源),用于判断服务器的健康状态、查看进程、杀死进程。
2.进程分类:系统进程、用户进程、交互进程、批处理进程、守护进程。
3.进程状态:
新创建的进程获得运行的资源(除了cpu)之后,进入就绪队列,当获得cpu资源之后就进入了运行状态,对于运行时间比较长的进程,cpu分配的时间片用完之后又再次进入就绪状态,等待再次调度;而对于获得cpu资源的进程,如果需要I/O请求,则该进程进入阻塞状态,等到I/O操作完成之后进入就绪队列,等待被cpu调度;进程在cpu中执行完之后进入终止状态。
4. 进程的优先级:
优先级的取值范围:[-20,19] 越小进程的优先级越高,设置-30也会默认为-20
二.进程命令:
1.查看所有进程: ps -le
ps -ef
USER:该进程是由哪个用户产生的;
PID:进程的ID号;
PPID:父进程的ID号;
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。 pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:父进程、+:位于后台、用“Z”表示僵死进程,用“<”表示优先级高的进程,用“N”表示优先级较低的进程
STIME:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间COMMAND:产生此进程的命令名
2.top工具动态显示进程状态:
第一行 25min:系统已经运行了25min;load average:系统的平均负载,小于1认为系统负载较小
第二行 zombie:僵尸进程(如果不是0需要检查)
第三行 us\sy\ni\id\wa\hi\si\st(用户模式\系统模式\改变优先级的用户进程\空闲cpu\等待输入输出进程\硬中断请求\软中断请求服务\虚拟时间)占用cpu百分比
第四行 buffers 作为缓存的内存数量
第五行 Swap(交换分区/虚拟内存的大小) cached(作为缓存的交换分区)
3. pidof PID (查找一个运行程序的PID)
4.pstree(查看进程树)
选项:-p:显示进程的PID -u:显示进程的所属用户
优先级的操作:
5. nice(指定程序运行优先级) renice(改变优先级)
如:nice -n 5 command(进程的command)
renice -5 777(进程的pid)
6. kill -l(查看可用的进程信号)
kill -1 (重启进程)
kill -9 (强制杀死进程,后面跟进程的pid)
7. killall [选项][信号] 进程名
#按照进程名杀死进程
选项:
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写
pkill [选项] [信号] 进程名(支持正则)
#按照进程名终止进程
选项: -t 终端号:按照终端号踢出用户
pkill 相当于pgrep+ kill
8. w(查询本机登录的用户)
9. pkill -t -9 pts/1 (强制杀死从pts/1虚拟终端登录的进程)