linux下的进程管理及控制服务

一.进程的定义

程序(program)放置在储存媒体中(如键盘,光盘,软盘,磁带等),为实体文件的形态存在。
进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序,即是系统未完成并且正在进行的工作。进程主要分为两种,一种是和当前环境有关,一种和当前环境无关。

二.查看进程

(1)利用图形方式查看

命令:gnome-system-monitor

输入命令会则会出现进程的图形界面,结果如下:

在这里插入图片描述

(2)进程查看命令

命令含义

ps a在shell中运行的所有进程,包含环境自身信息
ps -A系统中所有的进程,包括环境
ps -a在shell中运行的所有进程,不包括shell自身信息
ps -d显示系统中所有进程,除了shell信息
ps -u显示进程的用户,pid,cpu的使用率等
ps e显示进程的扩展性,系统的详细信息,调用的系统资源
ps x显示所有有输入设备终端的,tty是能显示出字符设备的
ps f显示进程的从属关系(不一定父进程结束,子进程也结束)。孤儿进程受系统初始化控制 (父进程被强行关闭)

ps -A

系统中所有的进程,包括环境
在这里插入图片描述
ps -a

在shell中运行的所有进程,不包括shell自身信息
在这里插入图片描述
ps a

在shell中运行的所有进程,包含环境自身信息

在这里插入图片描述
ps -u

显示进程的用户,pid,cpu的使用率等

在这里插入图片描述

ps x

显示所有有输入设备终端的,tty是能显示出字符设备的

在这里插入图片描述

在这里插入图片描述
ps f

显示进程的从属关系(不一定父进程结束,子进程也结束)

在这里插入图片描述

ps e

显示进程的扩展性,系统的详细信息,调用的系统资源
在这里插入图片描述
(3)ps常用组合

命令含义

ps aux显示当前系统中所有进程并显示进程用户
ps ef显示进程详细信息并显示进程父子关系
ps ax显示当前系统中的所有进程
pstree显示当前系统的进程树

ps aux
显示系统中所有进程并显示进程用户:
在这里插入图片描述
ps ef
显示进程详细信息并显示进程父子关系
在这里插入图片描述
ps ax
显示当前系统中的所有进程

在这里插入图片描述

pstree

显示当前系统的进程树

在这里插入图片描述
(4)显示进程指定信息

命令进程的指定信息
ps -o comm显示进程名称
ps -o group显示进程的组
ps -o user显示进程的使用者
ps -o %cpu显示进程的cpu使用率
ps -o %mem显示进程的内存使用率
ps -o pid显示进程id
ps -o nice显示进程的优先级(优先级的范围是-29~19,越负优先级越高)
ps -o stat显示进程运行状态
ps -o tty显示进程输出字符设备的

ps -o comm

显示进程名称
在这里插入图片描述

ps -o user
显示进程所有人
在这里插入图片描述

ps -o group
显示进程所有组
在这里插入图片描述

ps -o %cpu
显示进程cou使用率
在这里插入图片描述

ps -o %mem
显示进程内存使用率
在这里插入图片描述
==ps -o pid ==
显示进程id

在这里插入图片描述

ps -o nice
显示进程优先级
在这里插入图片描述
ps -o stat
显示进程运行状态

在这里插入图片描述

ps -o tty
显示进程输出占用字符终端
在这里插入图片描述

一次性显示所有想看的进程的信息
在这里插入图片描述
(5)进程排序
进程需要的资源越多,影响就越大,通过排序可以对进程进行进一步了解。

ps ax --sort=+%cpu/-%cpu           对cpu使用率的进程进行由小到大/由大到小的排序
ps ax --sort=+%mem/-%mem           对内存使用率的进程进行由小到大/由大到小的排序

1.对进程中的cpu进行从小到大排序

在这里插入图片描述
只显示cpu使用率,并从小到大排序
在这里插入图片描述

在这里插入图片描述

对进程中的cpu进行从大到小排序
在这里插入图片描述

只显示cpu使用率,并从大到小排序
在这里插入图片描述

2.对进程中的内存进行从小到大排序

在这里插入图片描述
只显示内存使用率,并从小到大排序
在这里插入图片描述
在这里插入图片描述

对进程中的内存进行从大到小排序
在这里插入图片描述
只显示内存使用率,并从大到小排序
在这里插入图片描述
随堂测试:

抓取系统中内存使用量排在前5的pid
在这里插入图片描述
注意:因为第一行被名称占用了,所以内存使用量排在前5的是2到6行的。

(6)stat中显示的信息

符号显示的信息
S进程状态
l内存中有锁定空间
N优先级低
<优先级高
+前台运行
s顶级过程

注意
<表示进程的优先级小于默认,l表示有一片锁定的空间,不能被回收,S表示进程状态,Ss进程状态是顶级进程,S<l表示高优先级内存有锁定空间,R+表示正在运行

三.进程优先级

<1>进程的优先级范围:-20~19

<2>优先级查看

ps ax -o pid,nice,comm

在这里插入图片描述
<3>指定某个优先级开启进程

格式如下:

nice -n 优先级数字 进程名称

实验如下:

用watch监视:

 watch  -n 1  ps  a  -o  stat,user,pid,comm,nice    

在这里插入图片描述
在这里插入图片描述
<4>改变进程优先级

格式如下:

   renice  -n  优先级数字  进程pid

实验如下:

watch监视:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四.环境中进程的前后台调用

命令含义
jobs查看被打入环境后台的进程
ctrl+z把占用终端的进程打入后台
fg jobsnum把后台进程调回前台
bg jobsnum把后台暂停的进程运行
comm &让命令直接在后台运行

实验如下:
watch监视:在这里插入图片描述

ctrl+z将其打入后台,不运行(暂停):
在这里插入图片描述
注意:这个firefox和gedit没有在后台运行(没有加&),ctrl+c直接关闭
在这里插入图片描述
在这里插入图片描述
jobs查看,fg调用到前台运行
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
jobs查看,bg后台运行
在这里插入图片描述

在这里插入图片描述
comm & 让命令直接在后台运行

在这里插入图片描述
五.“杀死”进程

信号是一个动作的标识
(1)常用信号等级

等级含义
1进程重新加载配置
2删除进程在内存中的数据
3删除鼠标在内存中的数据
9强行结束单个进程(不能被阻塞)
15正常关闭进程(可能会被阻塞)
18运行暂停的进程
19暂停某个进程(不能被阻塞)
20把进程打入后台(可以被阻塞)

(2)kill的用法

kill -信号 进程pid                   单个杀死
killall -信号 进程名字             批量杀死
pkill -u student -信号            指定杀死的用户

实验如下:
kill -信号 进程 pid
1.删除进程在内存中的数据
在这里插入图片描述
另一种方法:

在这里插入图片描述
2.删除鼠标在内存中的数据,如果删除了,在shell中鼠标将会消失,相当于看电视时全屏的样子,可以用“ctrl+\”进行模拟,会发现按键后,鼠标将不再出现,直至滑动鼠标。

3.结束进程
正常关闭进程(可能会被阻塞)
在这里插入图片描述
强烈结束进程(不会被阻塞)
在这里插入图片描述
两者分辨:
在这里插入图片描述
在这里插入图片描述
4.暂停进程

打开一个图形界面gedit
在这里插入图片描述
写入以下东西
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

killall -信号 进程名字
实验如下:
在这里插入图片描述

pkill -u student -信号
实验如下:

在这里插入图片描述

六.进程的动态监控

top命令

按键含义
1显示cpu
s调整刷新时间
cCPU负载排序
m内存使用量排序
h查看帮助
u查看指定用户进程
k对指定进程发起信号
q退出

在这里插入图片描述
七.控制服务

1.什么是服务
cs模型,c表示client,s表示server
定义:系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务

2.用什么控制服务

系统初始化进程可以对服务进行相应的控制

3.当前系统初始化进程是什么

systemd	        ##系统初始化进程
pstree	         ##显示系统中的进程树

4.进程控制命令
ssh(client) ----->sshd(server)

命令含义
systemctl服务控制命令
systemctl status sshd查看服务状态,inactive(不可用),active(可用)
systemctl start sshd开启服务
systemctl stop sshd关闭服务
systemctl restart sshd重启服务
systemctl reload sshd重新加载服务配置
systemctl enable sshd设定服务开机启动
systemctl disable sshd设定服务开机不启动
systemctl mask sshd对服务进行锁定
systemctl unmask sshd对服务进行解锁
systemctl list-units列出已经开启服务当前状态
systemctl list-unit-files列出所有服务开机启动的状态,disable,enable
systemctl list-dependencies列出服务的依赖
systemctl set-default multi-user.target设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target设定系统启动级别为图形模式

实验如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值