Linux之系统进程及控制

2023-11-13

一、什么是进程?

进程就是系统未完成并且正在进行的工作。

二、查看系统进程

1、图形方式查看

gnome-system-monitor

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

2、进程查看命令

	ps	-A	##所有进程
		-a	##在当前环境中运行的进程,不包含环境信息
		-u	##显示进程用户信息
		 a	##在当前环境中运行的进程
		 x	##列出系统中所有运行包含tty输出设备
		 f  ##显示进程的父子关系
		 e	##显示进程的详细信息(系统资源的调用)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ps常用组合:

ps aux		##显示系统中所有进程并显示进程用户

在这里插入图片描述

ps ef		##显示进程详细信息并显示进程父子关系

在这里插入图片描述

ps ax		##显示当前系统中的所有进程

在这里插入图片描述

pstree		##显示当前系统的进程树

在这里插入图片描述
那么,我们如何根据自己的需要让每个进程显示指定的信息呢?别急,接下来就告诉你!

ps -o   xxx	    ##显示进程的指定信息
		comm	##进程名称
		user	##进程所有人
		group	##进程所有组
		%cpu	##进程cpu使用率
		%mem	##进程内存使用率
		pid	    ##进程id
		nice	##进程优先级

示例:

ps -o comm,user,pid,%cpu

在这里插入图片描述

3、进程排序

ps ax --sort=
			  +%cpu|-%cpu	##按cpu占用率从小到大|从大到小排序
			  +%mem|-%mem	##按内存使用率 从小到大排序|从大到小排序

示例:
在这里插入图片描述
在这里插入图片描述

4、在stat进程状态中显示的信息

S	##进程状态
l	##内存中有锁定空间
N	##优先级低
<	##优先级高
+	##前台运行
s	##顶级进程

示例:

此进程的进程状态为高优先级的顶级进程,并且内存中有锁定空间。
在这里插入图片描述
此进程的进程状态为低优先级进程的顶级进程,并且内存中有锁定空间。

有锁定空间的进程可以理解为该进程进入后台后,其他进程不能占用该进程使用的内存。

5、进程优先级

优先级概念:

  • CPU资源分配的先后顺序,就是进程的优先权
  • 优先权高的进程有优先执行的权利。配置进程优先权对多任务环境的Linux很有用,可以改善系统性能。
  • 还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统的整体性能。

1、进程的优先级范围

-20~19
数字越小,进程优先级越高。

2、优先级的查看

ps ax -o pid,nice,comm

在这里插入图片描述

3、指定某个优先级开启进程

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

示例:

nice -n -5 vim &	##开启vim并且指定程序优先级为-5

在这里插入图片描述
**注意:**nice指定优先级只对设定后新开启的进程有效,对设定前开启的进程无效。

4、改变进程优先级

renice -n 优先级数字 进程pid

示例:
准备工作:

ps a -o nice,comm,pid

在这里插入图片描述

renice -n -5 2910              ##改变2910进程优先级为-5

在这里插入图片描述
注意:
nice与renice不同在于前者只对新产生的进程有效,而后者也可以改变已存在进程的优先级。

6、环境中进程的前后台调用

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

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

7、进程信号

1、常用的信号等级

kill -信号等级 进程id

1		##进程重新加载配置

进程重新加载配置,指的是在进程不停止的情况下重新加载进程的配置文件信息,类似于游戏里面的“不停服更新“

2		##删除进程在内存中的数据
3		##删除鼠标在内存中的数据

解释:
对于删除进程在内存中的数据,如果该进程有锁定空间,那么删除进程在内存中的数据,相当于关掉这个进程。如果进程没有锁定空间,那么只是释放了该进程原占有的内存。

9		##强行结束单个进程(不能被阻塞)
15		##正常关闭进程	 (可能会被阻塞)	

分析:kill -9 为强行结束单个进程,不管该进程的优先级高不高。而kill -15 是正常关闭进程,一般对第三方软件可以正常关闭,但是对于优先级较高的进程,则可能被阻塞,不能关闭。
示例;
准备工作
在这里插入图片描述
在这里插入图片描述分析:用kill -15 关掉一个shell被阻塞了,shell并没有关掉。
在这里插入图片描述
分析:用kill -15关掉firefox成功了。
在这里插入图片描述
分析:用kill -15 关掉一个shell被阻塞了,用kill -9 成功杀死了这个shell进程。

18		##运行暂停的进程
19		##暂停某个进程	 (不能被阻塞)
20		##把进程打入后台 (打入后台同时会暂停) (可以被阻塞)

在这里插入图片描述
在这里插入图片描述
更多的进程信号等级可以查看:
man 7 signal ##查看信号详细信息

killall -信号	进程名字

在这里插入图片描述

pkill	-u student -信号

在这里插入图片描述

8、进程的动态监控

top
	1	##显示cpu每个核的负载
	s	##调整刷新频率
	c	##cpu负载排序
	m	##内存使用量排序
	h	##查看帮助
	u	##查看指定用户进程
	k	##对指定进程发起信号
	q	##退出

显示cpu每个核的负载:
在这里插入图片描述

调整刷新频率:
在这里插入图片描述
按cpu负载排序:
在这里插入图片描述
按内存使用量排序:
在这里插入图片描述
查看帮助:
在这里插入图片描述

查看指定用户进程:
在这里插入图片描述
在这里插入图片描述
对指定进程发起信号:
在这里插入图片描述
输入要控制进程的pid
在这里插入图片描述
输入信号等级,图为9。结束vim进程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux之系统进程及控制 的相关文章

  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为

随机推荐

  • mssql sqlserver 获取指定日期为本月第几个工作日

    转自 https www cnblogs com lairui1232000 p 9286104 html 摘要 下文讲述工作中 需要获取指定日期在当月的工作日 下文讲述常规的指定工作日所在月的天数分析 实现思路 1 生成一个国家法定假日表
  • C#的笔记属性索引器,委托事件,泛型集合,异常捕捉

    C 有一些与其他语言C Java不同的特性这里特别记一下 他们大部分基本的内容是相同的 C 有属性索引器 委托事件 泛型集合 trycatchfinally异常捕捉 属性Property 属性时一种很像字段的方法 他有getset访问器 使
  • 高并发高可用(二)架构

    4 大型网站架构模式 模式词汇来源于建筑学 定义 每个模式描述一个在我们周围不断重复发生发生的问题及该问题解决方案的核心 这样你就能一次又一次使用该方案而不必做重复的工作 为解决大型网站所遇到的高并发访问 海量数据处理 高可用运行等系列问题
  • MySQL的预读机制

    一 预读机制 InnoDB在I O的优化上有个比较重要的特性为预读 预读请求是一个i o请求 它会异步地在缓冲池中预先回迁多个页面 预计很快就会需要这些页面 这些请求在一个范围内引入所有页面 InnoDB以64个page为一个extent
  • 网上书店管理系统 课程设计

    数据库原理及应用 综合设计报告 第一章 绪论 随着计算机技术的发展以及计算机网络的逐渐普及 因特网成为了人们查找信息的重要场所 二十一世纪是信息的时代 所以信息的交换和信息的流通就显得特别的重要 因此网上书店的出现成为必然 实体书店在正常运
  • pytorch 入门 DenseNet

    知识点0 dense block的结构 知识点1 定义dense block 知识点2 定义DenseNet的主体 知识点3 add module 知识点 densenet是由 多个这种结构串联而成的 import torch import
  • Retrofit2 使用@Multipart上传文件

    1 上传单个文件 1 1定义接口 Multipart POST uploadImgs Call
  • Laravel5.6 实现小程序使用openid登陆、手机号验证码登陆、账户密码登陆三种登陆方式

    我的个人博客 逐步前行STEP 目前开发小程序 按需求要实现3种登陆方式 1 微信授权登陆 2 账户密码登陆 3 手机号 验证码登陆 我使用laravel自带的Auth认证机制 通过attempt方法进行账户验证 但是默认的认证机制必须包含
  • YOLOv6网络结构详解

    网络结构 根据官方代码使用Drawio绘制的YOLOv6 s网络结构图 官方资源 美团技术团队对于YOLOv6的介绍 文章 文章 文章 论文地址 YOLOv6 A Single Stage Object Detection Framewor
  • Java基础——大杂烩

    今天阿Q给大家来一节大杂烩 讲一下专题性不强的java基础知识 main方法详解 public static void main String args 这里面只有args能改变 public 被jvm调用 访问权限足够大 static 被
  • 记一次结构体字节对齐引起的严重问题

    头文件自定义了bool类型 4个字节 ifndef bool define bool int define true 1 define false 0 endif typedef struct bool automaticActivatio
  • 微信小程序消息订阅的实现——后端是nodejs的koa框架

    在做毕设中 我遇到这么一个使用场景 当顾客购买某个商家的商品后 那这个商家应该要收到通知信息 提示你家商品被购买了 故有了以下代码 微信小程序js代码 onSubmit function 用户点击确认支付 用户应该点击允许 同意提醒信息订阅
  • window 7 平台上 MXNET 源码编译

    目的 本文主要描述怎么在windows上编译mxnet源码 得到可用的libmxnet dll和libmxnet lib文件 版本 mxnet x64 release CPU版 运行环境 windows 7 64bit visual stu
  • [风格迁移系列五: WaveCT-AIN] 医学图像的风格迁移和跨域自适应(泛化性)

    不同于自然图像的风格迁移 在临床应用上 医学图像更加注重图像生成的纹理细节 并且需要实时的推理速度 因此提出一个实时且高质量的风格迁移方法非常重要 这篇论文实现了这个方法 Remove Appearance Shift for Ultras
  • Rectangle矩形类

    题目 设计一个名为Rectangle的矩形类 并实现Comparable接口 这个类包括 1 两个名为width和height的double数据域 它们分别表示矩形的宽和高 2 Rectangle的无参构造方法 width和height的默
  • Transactions on Multimedia 投稿经验分享

    关于IEEE Transactions on Multimedia 投稿经验分享 SCI分区 JCR分区 Q1 Q1 影响因子 7 3 期刊官方网站 IEEE Transactions on Multimedia IEEE Xplore 投
  • 聚类分析:原型K-Means/K-Means++聚类、层次聚类;密度聚类DBSCAN

    聚类分析 处理无标签数据 from IPython display import Image matplotlib inline 1 使用K Means方法按照相似度对对象进行分组 1 1使用sklearn实现K Means聚类 from
  • rdp协议解读

    转自 http blog csdn net jiangtao killer article details 6940346 一 前言 RDP 远程显示协议 Remote Display Protocol 简称RDP 提供了客户和服务器之间的
  • 微博爬取多页评论

    最近在学习爬虫 爬取了第一页后 信心满满 但是翻不了页 就卡住了 搜了好多资料 b站都翻烂了 还是没找到合适的代码 最后在知乎找到了 2023微博评论爬虫 用python爬上千条微博评论 突破15页限制 知乎 zhihu com 这篇文章干
  • Linux之系统进程及控制

    一 什么是进程 进程就是系统未完成并且正在进行的工作 二 查看系统进程 1 图形方式查看 gnome system monitor 图示 2 进程查看命令 ps A 所有进程 a 在当前环境中运行的进程 不包含环境信息 u 显示进程用户信息