进程是已启动的可执行程序的运行实例,进程有以下组成部分:
一个文件
被配内存的地址空间
有权限限制
程序代码的一个或多个副本(也叫执行线程)
像人一样拥有状态
父进程复制自己的地址空间(fork)创建一个新的子进程结构2,每个新进程分配一个唯一的进程ID(PID),满足跟踪安全之需,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代
查看进程 ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 128416 6408 ? Ss 09:34 0:01 /usr/lib/systemd/s
用户 进程ID CPU 物理内存 虚拟占用 实际 启动进程 进程 开始 运行耗费 所在路径
占用率 占用率 空间 占用空间 的终端名 状态 时间 时间
进程状态: R running T stop S sleep Z zombie (僵尸进程)
1.静态查看进程 ps
ps a 显示现行终端机下的所有程序
ps u 以用户为主的格式来显示程序状况
ps x 不以终端机来区分
ps aux | head -1
ps aux --sort -%CPU
以降序排列显示CPU占用率的进程(不加%前面的减号是升序)
查看进程的父子关系 ps - ef
查看想要的几列 ps axo user,pid |head - 3
2.动态查看进程 top
第一行 top - 12:26:36 up 2:51, 3 users, load average: 0.17, 0.19, 0.1
程序名—系统时间 运行时间 登录用户数 CPU负载均衡 5分钟 10 15
第二行 Tasks: 211 total, 3 running, 208 sleeping, 0 stopped, 0 zombie
任务总数 运行数 睡眠数 停止数 僵死数
%Cpu(s): 2.3 us, 4.0 sy, 0.0 ni, 93.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863012 total, 83648 free, 775172 used, 1004192 buff/cache
KiB Swap: 2097148 total, 2096124 free, 1024 used. 896204 avail Mem
top - d 3 间隔三秒自动刷新
top -p pid 查看指定的进程
3.使用信号控制进程
给进程发送信号(kill -l列出所有支持的信号)
编号 信号名
1.SIGHUP 重新加载配置
2.SIGINT 键盘中断Ctrl+C
3.SIGQUIT 键盘强制退出Ctrl+,类似2
9.SIGKILL 强制终止,无条件
15.SIGTERM终止(正常结束),缺省信号
4.进程优先级nice (-20~19)
在top中显示的优先级有两个,PR值和nice值
系统中的两种优先级:NI(实际nice值)PR(+20)将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到+39
nice值越大:表示优先级越低,例如+19
nice值越小:表示优先值越高,例如-20
查看进程的nice级别:
[root@localhost ~]# ps axo pid,command,nice --sort=-nice
更改优先级nice:
a.启动具有不同nice级别的进程:
默认情况下,通常会继承父进程的nice级别,默认为0
更改:
[root@localhost ~]nice -n -5 sleep 7000& [1]97763
查看
[root@localhost ~]# ps axo pid,command,nice |grep sleep 97763 sleep 7000 -5
b.更改现有进程的nice级别
[root@localhost ~]# renice -9 97763 97763 (进程 ID) 旧优先级为 -5,新优先级为 -9
查看
[root@localhost ~]# ps axo pid,command,nice | grep sleep 97763 sleep 7000 -9
sleep 5000&(and) 放到后台执行
查看后台进程 jobs
把后台进程放到前台fg 1
运行后台进程bg 1
关掉后台进程 kill %1