博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下的进程管理及控制服务
阅读量:2344 次
发布时间:2019-05-10

本文共 3721 字,大约阅读时间需要 12 分钟。

一.进程的定义

程序(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 调整刷新时间
c CPU负载排序
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 设定系统启动级别为图形模式

实验如下:

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

转载地址:http://evjvb.baihongyu.com/

你可能感兴趣的文章
在ros底下安装opencv
查看>>
PHP页面纯静态化与伪静态化
查看>>
分享网页到微信朋友圈,显示缩略图的方法
查看>>
PHP参数类型限制
查看>>
IOS博客项目搭建-12-刷新数据-显示最新的微博数提示
查看>>
Laravel5 Markdown 编辑器使用教程
查看>>
php文件上传与下载
查看>>
Python3学习教程
查看>>
Python3学习笔记01-第一个Python程序
查看>>
Laravel5学生成绩管理系统-01-安装-建表-填充数据
查看>>
Mac OSX下使用apt-get命令
查看>>
Mac下安装PHP的mcrypt扩展的方法(自己总结的)
查看>>
关于html_entity_decode、空格 以及乱码
查看>>
Box2d no gravity
查看>>
mario collision
查看>>
tiled 地图工具
查看>>
小游戏
查看>>
旋转关节绳子
查看>>
射箭box2d
查看>>
cocos2d iphone-wax cocowax
查看>>