进程管理及操作

一、进程管理

1.进程简介

进程是已启动的可执行程序的运行实例。进程由以下组成部分:

一个文件;
被分配内存,被配内存的地址空间;
有权限限制;
程序代码的一个或多个副本(也叫执行线程);
拥有状态;

2.静态查看进程ps

(1)静态查看进程ps

Ps aux
在这里插入图片描述
User:运行进程的用户
PID:进程的ID
%CPU:CPU占用率
%MEM:内存占用率
VSZ:占用的虚拟内存,单位字节
RSS:占用的实际内存,单位字节
TTY:进程运行的终端
(TTY是问号就是本机运行的终端;
Pts/n表示远程的终端。)
STAT:进程状态man ps(/STATE)
(R:run正在运行;
S:sleep睡眠状态;
T:stop暂停状态;
Z:zombie僵尸状态,就类似未响应这种;
D:不可中断的睡眠(等待),通常是在等待输入或者输入完成;
N:nice低优先级任务;
s:进程是会话期首进程;
+:进程属于前台进程组
l:进程是多线程的;
<:高优先级任务。)
START:进程的启动时间
TIME:进程占用CPU的总时间
COMMAND:进程文件,进程名

命令参数说明:
Ps aux
a:显示现行终端机下的所有程序
u:以用户为主的格式来显示程序状况
x:不以终端机来区分

(2)进程排序

Ps aux --sort -%cpu
按照cpu排序,-表示降序

Ps aux --sort %cpu
按照cpu排序,没有-表示升序

注意:sort后面也可以跟ps的其他内容,比如pid
Ps aux --sort -pid
Ps aux --sort vsz

(3)进程的父子关系

Ps -ef
在这里插入图片描述
这里主要看PPID,这个PPID就是父进程的PID。

(4)自定义显示字段

Ps axo user,pid,ppid,%mem,stime,command
在这里插入图片描述
显示字段自定义。

3.动态查看进程top

Top
在这里插入图片描述
上半部分:
top - 19:27:27 up 7:58, 2 users, load average: 0.01, 0.03, 0.05
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0
KiB Mem : 997956 total, 712104 free, 137792 used, 148060 buff/cach
KiB Swap: 2097148 total, 2097148 free, 0 used. 693284 avail Mem

第一行:程序名-系统时间 运行时间 登录用户数 cpu负载:5分钟,10,15
第二行:105总进程数 1运行,104睡眠,0停止,0僵尸
第三行:cpu使用占比,us用户,sy系统,ni优先级,id空闲,wa等待,hi硬件,si软件,st虚拟机
第四行:物理内存k:总共990+M,空闲700+M,使用137+M,cache缓存硬盘内容148+M
第五行:虚拟内存K:总共2+G,空闲2+G,使用0,690+可用内存

下半部分:
Pid:进程id
User:启动用户
PR:优先级
ni:优先级
VIRT:申请内存
RES:实际占用内存
SHR:共享的内存
S:状态
%CPU:CPU占用率
%MEM:内存占用率
TIME+:运行时间
Command:程序名

Top技巧
H/? 打开帮助,输入H或者?打开帮助
在这里插入图片描述
M按内存的使用排序
P按CPU使用排序
N以PID的大小排序
<向前
向后
z彩色,Z设置彩色,使用
k激活kill,可以输入pid直接kill进程
q退出

一直打开top,默认为每秒刷新一次,是耗费资源的。所以我们也可以控制刷新次数节省资源
Top -d 3
Top每隔3s刷新一次

Top -d 3 p 1,3
-p指定pid查看,每隔3s刷新

4.使用信号控制进程

信号种类
Kill -l
列出所有支持的信号

编号信号名注释
1)SIGHUP重新加载配置
2)SIGINT键盘种端Ctrl+C
3)SIGQUIT键盘退出Ctrl+\,类似SIGINT
9)SIGKILL强制终止,无条件
15)SIGTERM终止(正常结束),缺省信号
18)SIGCONT继续
19)SIGSTOP暂停
20)SIGTSTP键盘暂停Ctrl+Z

Kill -l是可以查看具体信号
在这里插入图片描述

信号9,15

杀死进程,就用9,15。
9信号就直接杀死进程。
15是正常终止,比9信号要温婉一些。
Kill -9 PID
Kill -15 PID

5.进程优先级nice

简介

Linux进程调度及多任务
每个CPUP在一个时间点上只能处理一个进程,通过时间片技术,来同事运行多个程序。

优先级范围和特性

优先级范围:-20,-19,-18,…0,1,…,18,19

系统中的两种优先级:

在top中显示的优先级有两个,PR值和nice值

NI值:实际nice值
PR(+20):将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

优先级特性:

Nice值越高:表示优先级越低,例如+19
Nice值越小:表示优先级越高,例如-20

查看进程的nice级别

Ps axo user,pid,command,nice --sort=-nice
在这里插入图片描述

启动具有不同nice级别的进程:

默认情况:

启动进程时,通常会继承父进程的nice级别,默认为0

手动启动不同nice:

nice -n -5 sleep 6000 &
nice -n就是调整优先级,-5表示优先级调整成-5,调整的程序就是sleep 6000,sleep是让系统睡眠的命令,6000是睡眠时间,因为sleep会占用前台,所以用&符号丢到后台运行。
在这里插入图片描述
在这里插入图片描述
启动时候就设置好优先级了。

更改现有进程的nice级别

这里我们先创建一个
Sleep 7000 &
在这里插入图片描述
在这里插入图片描述
此时优先级是0

Renice -20 4137
这里的4137是需要调整优先级的进程pid
在这里插入图片描述

注意:
我们这里调整的是nice优先级,而系统本身是有优先级pr的。
top -d 1 -p 4132,4137
这里就是top查看我们刚刚创建的两个优先级
在这里插入图片描述
可以看到我们设定的nice优先级是我们自己设定好的,但是换算成pr系统优先级后,就相当于+20的效果。

二、作业管理jobs(后台运行)

1.简介

作业控制是一个命令行功能,也叫后台运行

关键词介绍

Forground
前台进程:就是在终端中运行的命令,占领终端。比如sleep

Background
后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。

2.后台程序控制示例

(1)观察占领前台的现象

Sleep 2000
在这里插入图片描述
运行sleep程序,当前终端无法输入。大部分命令行输入已经无效,
Ctrl+c终止进程。

(2)运行后台程序

Sleep 3000 &
&就是将sleep丢到后台运行

(3)Ps查询所有程序

在这里插入图片描述

(4)Jobs查看后台进程

Jobs
查看后台工作
在这里插入图片描述
Jobs查看的进程仅查看后台进程。
1 2 3表示序号,+ 表示最新的程序,-表示次一级的

(5)调动后台程序至前台,调动前台程序到后台

fg 3
将jobs里的序号1为1的进程调整到前台
在这里插入图片描述

bg 3
我们先将这个sleep暂停,ctrl+z
在这里插入图片描述
然后bg 3
在这里插入图片描述

(6)消灭后台进程

使用kill消灭
可以使用pid形式消灭,这里我们说使用jobs的序号进行kill

Kill %3
在这里插入图片描述
在这里插入图片描述

Kill 3和kill %3的区别

Kill 3是把pid为3的进程杀死

Kill %3是将jobs的序号为3的进程杀死。

三、虚拟文件系统proc

/proc/虚拟文件系统
这个目录下面大多都是数字目录,这些数字目录就是代表的各个进程
整个目录内容就是采集了服务器自身内核、进程运行的状态信息。

例如:需要查看cpu信息:
Cat /porc/cpuinfo
在这里插入图片描述
内存:/proc/meminfo
Cat /proc/meminfo
这里面就是本机的内存信息。
在这里插入图片描述

内核:/proc/cmdline
Cat /proc/cmdline
这里查看本机的内核信息
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值