linux进程管理

概念

进程(Process)
1.系统进行资源分配和调度的基本单位,是操作系统结构的基础。
2.是计算机中的程序关于某数据集合上的一次运行活动,在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。
3.程序是指令、数据及其组织形式的描述,进程是程序的实体。
线程(thread)
1:是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。
2.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务

进程管理

查看进程

图形界面查看

gnome-system-monitor
#开启进程管理界面

在这里插入图片描述

命令方式查看

ps [option]
#报告当前系统的进程状态

在这里插入图片描述
ps命令跳转

top
#实时动态地查看系统的整体运行情况

在这里插入图片描述
top命令跳转

进程相关信息解释

分类PS命令显示TOP命令显示
(不填为一样)
含义
IDPID进程id进程识别号
PPID父进程id
用户USER进程所有者的用户名,
GROUP进程所有者的组名
终端TTY启动进程的终端名。若不是从终端启动的进程则显示为 ?
级别PRIPR进程优先级别;动态值;值越大优先级越小;PRI(new)=PRI(old)+ni,
NInice值;静态值;负值表示高优先级,正值表示低优先级;范围为 -20~19,可手动调整,方法跳转
资源使用%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
VSZVIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP进程使用的虚拟内存中,被换出的大小,单位kb
RSSRES进程使用的、未被换出的物理内存大小,单位kb
SHR共享内存大小,单位kb
TIMETIME+进程使用的CPU时间总计,PS静态时间单位秒,TOP动态动态单位1/100秒
进程状态STATS进程状态。(下面有详细的)
程序CMDCOMMAND程序名称或命令显示
COMMAND程序或命令及具体操作选项

状态代码

代码名称意义
Rrunning正在运行的程序或者是可运行程序,处于运行队列中
Ssleep程序处于睡眠状态,可以被唤醒
Duninterruaptible sleep同样是睡眠状态,但是不可以被唤醒,
Tstopped停止状态,不可被唤醒,
ttrace停止且可以跟踪状态
Z“zombie”僵尸进程,跳过父进程被先结束的进程
Xdead退出状态,进程即将被销毁
<拥有高优先级别
N拥有低优先级别
L有些页被锁进内存
s包含子进程
l多线程
+在前台进程组运行

PS命令查看进程

PS常用查看命令
ps -A或-e		#列出所有进程
ps -a				#当前环境内所有进程,不包含环境信息
ps a				#当前环境内所有进程,包含环境信息
ps x				#当前环境内所有进程,包含tty输出设备
ps -u	[user]		#显示用户进程信息,不输入user默认为当前用户
ps f				#结构显示进程父子关系
ps e				#显示详细信息,系统资源调用

PS常用组合命令
ps aux				#显示所有进程,并且显示进程用户
ps ef				#显示进程详细信息,并且显示父子关系
ps ax				#显示当前系统中所有进程
pstree 				#以树形结构显示当前所有进程

PS进程显示排序
ps ax --sort=[+|-]key
#'+'表示升序,不输入默认为升序;'-'表示降序;'key'以什么关键词为排序内容
ps -e --sort=+%cpu
#显示全部进程并且以CPU使用率为关键词,升序排列
ps -A --sort=-pid
#显示全部进程并且以PID号为关键词,降序排列	

进程优先级

进程优先级概念

每个进程都有两个影响其调度的值:
第一个是动态值,内核经常更改这个值,也就是ps -l命令里的pri值
第二个是静态值,只是偶尔被用户手工更改,即ps -l里的ni值

    PRI即进程的优先级,此值越小进程的优先级别越高。而NI,也就是我们所要说的nice值(通过nice命令设置),其表示进程可被执行的优先级的修正数值。
    如前面所说,PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice。所以,nice命令设置的优先级不是程序最终的优先级,而只是优先级的修正数值
    对任何进程而言,ni这个值可以从-20到19不等,分为40个级别,其中数值越小优先级越高,数值越大优先级越低,-20的优先级最高,19的优先级最低,需要注意的是普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。

NICE值调整

进程未运行,nice命令
nice [-n] nu'm comm	
-n:设置nice级别
#num为级别是数字,默认是0,由-20~19
#且n可省略
#comm为调整优先级别的进程或命令

例如:将vim的ni级别调整为-5并开启
在这里插入图片描述

进程已运行,renice命令
renice [-n] num [-gpu]PID	
-n:设置nice级别
-g:指定进程组的ID;
-p<程序识别码>:改变该程序的优先权等级,此参数为预设值,默认开启。
-u:指定开启进程的用户名。
#num为级别是数字,默认是0,由-20~19
#且-n可省略,但是级别数字必须为第一个参数出现
#PID为要改变进程的PID号码

例如:将已运行的vim的ni级别改为5
在这里插入图片描述

进程前后台调用

ctrl+z将占用终端的进程打入后台
命令jobs查看打入后台进程
在这里插入图片描述
[1]+:1为jobsnum;+号为默认首选使用
f+g+[jobsnum]把后台进程调回前台,不输入jobsnum时默认’+'号选项
b+g+[jobsnum]把后台暂停进行在后台运行,不输入jobsnum时默认’+'号选项
命令+&让命令直接在后台运行

信号级别

基本概念

摘自百度百科:
软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。

常用信号

信号代号信号名称说 明
1SIGHUP该信号让进程立即关闭,然后重新读取配置文件之后重启
2SIGINT中断键盘输入,删除进程在内存中的内容
3SIGQUIT退出键盘输入,删除鼠标在内存的数据
9SIGKILL用来立即结束单个进程,不能被阻塞,一般用于强制中止进程
15SIGTERM正常结束进程的信号,被阻塞
18SIGCONT该信号可以让暂停的进程恢复执行,不能被阻塞
19SIGSTOP该信号可以暂停前台进程,打入后台,不能被阻断
20SIGTSTP该信号可以暂停前台进程,打入后台,被阻断

查看进程信号对应或解释

kill -l
#查看信号对应含义
man 7 signal
#可产看具体信号含义

信号控制

kill命令:用来删除执行中的程序或工作
kill	-信号	进程PID
#对PID号进程,进行对应信号操作

killall命令:使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程
killall	-信号	进程名字
#多个相同进程名称开启时,可以同时操作

pkill命令:可以按照进程名杀死进程
pkill	-u	username	[-信号]
#根据用户名username进行,信号操作
#信号默认为9

进程动态查询

top命令
在这里插入图片描述
第一行:当前时间、系统的运行时间、登录用户数、系统平均负载(平均负载有3个值,最近1分钟的、5分钟的、15分钟的,值越大,说明系统的负载越高)
第二行:进程总数、运行、休眠、停止、僵化的进程数
第三行:us:用户空间占用cpu百分比;sy:内核空间占用cpu百分比;ni:用户进程空间内改变过优先级的进程占用cpu百分比;id:空闲cpu百分比;wa:等待输入输出的cpu时间百分比、hi:cpu服务于硬中断所消耗的时间总额、si:cpu服务于软中断所消耗的时间总额,st:虚拟机监控程序占用时间
第四行是:物理内存:total:物理内存总量;free:空闲内存总量;used:使用的物理内存总量;buff/cache:用作内核缓存的内存量
第五行针对的是系统交换空间,total:交换区总量;free:空闲减缓去总量;used:使用交换区总量;avail:可使用交换区总量;
第六及以下:按照关键词进行内容分类展示

操作显示内容
1显示cpu每个核的负载,再安一次合并
s按照输入数字,单位秒,调整刷新频率
c按照CPU负载由大到小排序pic_center
m按照内存使用量由大到小排序
h查看帮助信息
u查看指定用户的进程动态,不输入为所有
k对指定进程号发起信号
r重新安排一个进程的优先级别
q退出

控制服务

概念

服务:后台运行的程序,一般随系统的启动而自动的启动,且在用户退出或者注销后仍能继续运行。
服务与进程的关系:系统初始化进程可以对服务进行相应的控制
linux系统初始化进程:systemd
可用pstree命令显示进程树查看,systemd为树根

管理系统服务

系统服务状态:

名称含义
loaded系统服务已经初始化完成,加载过配置
active(running)正有一个或多个程序正在系统中执行
atcive(exited)仅执行一次就正常结束的服务。目前并没有任何程序在系统中执行
atcive(waiting)正在执行当中,不过还再等待其他的事件才能继续处理
inactive服务关闭
enbaled服务开机启动
disabled服务开机不自启
static表示该服务与其他服务相关联,不能单独设置该服务的启动状态,不可被管理
failed系统配置错误
服务常规操作:
systemctl status server_name
#查看服务状态(inactive,active)
systemctl start server_name 
#开启服务 
systemctl stop server_name 
#关闭服s务 
systemctl restart server_name
#重启服务 
systemctl reload server_name
#重新加载服务配置 
服务自启动管理:
systemctl enable server_name 
#设定服务开机启动 
systemctl disable server_name 
#设定服务开机不启动 
服务列表查询:
systemctl list-units 
#列出已经开启服务的当前状态
systemctl list-unit-files 
#列出所有服务开机启动的状态(disable,enable,static)
systemctl list-dependencies 
#列出服务的依赖 
初始化启动模式:
systemctl set-default multi-user.target
#设定系统启动级别为多用户模式,无图像模式
systemctl set-default graphical.target
#设定系统启动级别为图像模式
服务冻结
systemctl mask  server_name	
#冻结服务
systemctl unmask  server_name
#解冻服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值