Linux基础之进程管理
🌎上一节我们介绍了Linux基础之用户管理,这一部分我们就正式进入了下一个专题——进程管理,在这一小节我们将对进程管理进行一个具体的介绍,以及对进程的操作,作业控制,虚拟文件系统proc
🏠哈喽大家好,这里是YZWLXX,一名某高校大二本科在读的♂同学,希望以后在云计算大数据领域能够有所成就,很荣幸能够在CSDN结识众多志同道合和在各方面都有所造诣的小伙伴,我们一起加油吧~💖
🌷当然,觉得我写的好的小伙伴可以动动小手点点关注支持一下博主~💖
🚀上节内容:用户的权限之基本权限UGO,ACL与特殊权限
🌻🌷目录
进程管理
一.进程管理
1.什么是进程
进程是已经启动的可执行程序的运行实例,进程有以下组成部分:
·一个文件;
·被配内存的地址空间;
·有权限限制;
·程序代码的一个或多个副本(也叫执行线程);
·像人一样拥有状态
2.程序变成进程以后拥有哪些资源
·内存资源
·CPU资源
·网络资源
·PID(进程号)
3.进程的生命周期
父进程(PPID)赋值自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个,唯一的进程ID(PID),满足跟踪安全性之需。任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。
R-running(运行)S-sleeping(休眠)Z-zombie(卡死)T-stop(暂停)
4.静态查看进程ps
#显示现行终端机下的所有程序
ps a
#以用户为主的格式来显示程序状况
ps u
#不以终端机来区分
ps x
#查看全部进程
ps aux
#查看进程前两行
ps aux | head -2
输出字段含义
USER:运行进程的用户
PID:进程ID(不可能重复)
%CPU:CPU占用率
%MEM:内存占用率
VSZ:占用虚拟内存
RSS:占用实际内存
TTY:进程运行的终端(?表示本机登录;pts表示其他)
STAT:进程状态
START:进程的启动时间
TIME:进程占用CPU的总时间
COMMAND:进程文件,进程名
5.进程排序
#以CPU占用率进行排序(升序)
ps aux --sort %CPU
#以CPU占用率进行排序(降序)
ps aux --sort -%CPU
6.进程的父子关系
#语法:查看进程的父子关系,观察PID和PPID(父进程)
ps -ef
语法:ps axo 属性名
#例:只显示user,pid,ppid,并且显示前三行
ps axo user,pid,ppid | head -3
7.动态查看进程top
#语法
top
#退出
q
上半部分(了解)
第一行:top - 00:19:56 up 9:33, 2 users, load average: 0.13, 0.24, 0.23
top(程序名) 00:19:56 (系统时间) 9:33(运行时间) 2 users(登录用户数) load average(CPU负载 )
第二行:Tasks: 207 total, 5 running, 201 sleeping, 0 stopped, 1 zombie
Tasks: 207 total,(总进程数)5 running,(运行数) 201 sleeping, (睡眠数) 0 stopped, (停止数) 1 zombie (僵死数)
第三行:%Cpu(s): 22.2 us, 5.4 sy, 0.0 ni, 71.7 id, 0.0 wa, 0.0 hi, 0.7 si, 0.0 st
%Cpu(s): (CPU使用占比)us(us用户) sy(sy系统) ni(优先级) id(空闲) wa(等待) hi(硬件) si(软件) st(虚拟机)
第四行:KiB Mem : 995676 total, 74032 free, 608116 used, 313528 buff/cache
KiB Mem(物理存储)995676 total(所占内存) 74032 free(空闲)608116 used(使用的) 313528 buff/cache(缓存硬盘内容)
第五行:KiB Swap: 2097148 total, 1868796 free, 228352 used. 133492 avail Mem
KiB Swap(交换区总量),剩下的都是空闲的,使用过的和缓存的交换区总量
补充:top常用内部指令
h #帮助
M #按内存的使用排序
P #按CPU使用排序
N #以PID大小排序
< #向前
> #向后
z #彩色
Z #设置彩色,使用数字调整
top小技巧
top -d 1 #每一秒刷新一次
top -d 1 -p 10126 #查看指定进程的动态信息
top -d 1 -p 10126,12543 #查看指定进程的动态信息(多个进程)
8.使用信号控制进程
1)信号种类
#列出所有支持的信号
[yzw@localhost ~]$ kill -l
#使用信号(通过数字选择使用信号种类)
kill -数字
常用信号
1)SIGHUP 重新加载配置
2)键盘中断Ctrl+C(使用Ctrl+C退出进程)
3 SIGQUITCtrl+(使用Ctrl+\退出进程)
9)SIGKILL 强制终止,无条件
15)SIGTERM 正常关闭
9.进程优先级nice
nice值越大代表优先级越低,nice值越小代表优先级越高,范围为(-20~19)
1)启动时具有不同的nice级别的进程
默认情况:启动进程时,通常会继承其父进程的nice级别,默认为0
#设置该进程优先级为-5,且休眠7000秒,并且放在后台运行(&)
nice -n -5 sleep 7000 &
2)更改已有的进程优先级
#语法结构
renice nice值 PID
#例如:把1111这个进程的优先级设为-20
renice -20 1111
2.作业控制
1)简介
作业控制是一个命令行功能,也叫后台运行
关键词介绍
foreground(前台进程):是在终端中运行的命令,占领终端
background(后台进程):没有控制终端,它不需要终端的交互,看不见,但是在运行的时候会存在
2)jobs查看后台进程
jobs
3)把一个程序调回前台
fg PID
#例如,将1111进程调回前台
fg 1111
4)将一个程序调回后台
bg PID
#例如,将1111进程调回后台
bg 1111
5)杀死进程
#杀死该后台进程
kill %进程号
#若没有%,则代表杀死该进程,不是后台进程
3.虚拟文件系统proc
1)简介
采集服务器自身内核,进程运行的状态信息
2)CPU
#查看cpu信息
cat /proc/cpuinfo
3)内存
#查看内存信息
cat /proc/meminfo
4)内核
#查看内核信息
cat /proc/cmdline
#查看内核文件
ls /boot