Linux系统-进程和计划任务管理

news2024/11/18 14:30:18

一.程序和进程

1.程序

  • 保持在硬盘、光盘等介质中的可执行代码和数据
  • 文件中静态保存的代码

2.进程

  • 在CPU及内存中运行的程序代码
  • 动态执行的代码
  • 父、子进程
  • 每个程序可以创建一个或多个进程

3.进程特征

  • 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的
  • 并发性:任何进程都可以资源分配和调度的一个独立单位
  • 独立性:进程是系统进行资源分配和调度的一个独立单位
  • 结构性:进程由程序、数据和进程控制块三部分组成

4.线程

  • 是进程的一个实体,更加轻量级
  • 操作系统能够进行运算调度的最小单位
  • 一个进程可以有很多线程,每条线程并行执行不同的任务

5.线程与进程的区别

  • 进程是程序的一次执行,它是资源分配和挂你的基本单位,包括代码、数据、堆栈、文件句柄等
  • 线程是进程中的一个执行流程,是CPU调度的基本单位,共享进程的资源,包括内存、文件和其他资源等
  • 进程之间通常是相互独立的,每个进程有独立的内存空间,通过进程间通信(IPC)来实现数据共享和通信
  • 线程之间共享相同的地址空间和其他进程资源,线程之间的数据共享和通信更为方便

二.查看系统进程

1.ps命令

  • 查看静态的进程统计信息
ps命令的选项
BSD格式a表示显示当前终端的进程
u表示以用户身份显示进程
x表示显示当前用户的所有进程
unix格式-e表示显示系统内的所有进程信息
-f完整的格式显示进程信息
-l使用长格式显示进程,ps -l表示只看当前shell产生的进程
兼容o/-o属性,可以定制指定查看进程属性(用逗号分开)
k对属性进行排序(属性前面加“-”表示降序)
--sort对属性进行排序(属性前面加“-”表示降序)

1.1.ps aux(可以没有-)

ps -aT:显示所有线程

ps -T -p <pid>:查看指定进程中已经起的线程

ps -L <pid>:查看指定进程中的线程信息

ps aux --sort -%cpu | head -10:按cpu降序排列,-为降序,+为升序,p与%同义

ps aux --sort +pmem | head -n 10:按内存升序排列

ps aux --sort -pcpu,+pmem | head -n 10

关于进程几种状态的学习

常见的STAT进程状态
R该进程正在运行
S该进程出于睡眠,可以被唤醒
D该进程出于不可以被唤醒,通常用于I/O
T该进程停止状态,可能是在后台暂停或者进程正处于除错状态
Z

僵尸进程,进程已经终止但是父进程不知道,并没有被收回资源,所以该进程还是继续占用资源,但是并没有工作(运维就需要清理这种僵尸进程)

1.2.ps -elf(-不能少)

各列解释

F内核分配给进程的系统标记
S进程的状态
UID启动这些进程的用户
PID进程的进程ID
PPID父进程的进程号(如果该进程是由另一个进程启动的)
C进程生命周期中的CPU利用率
PRI进程的优先级(越大的数字代表越低的优先级)
NI谦让度值用来参与决定优先级
ADDR进程的内存地址
SZ假如进程被换出,所需交换空间的大致大小
WCHAN若该进程在睡眠,则显示睡眠中的系统函数名
STIME进程启动时的系统时间
TTY进程启动时的终端设备
TIME运行进程需要的累计CPU时间
CMD进程的启动命令

2.top命令

  • 查看动态的进程排名信息

2.1.

各列解释

PID进程的ID
USER该进程所属的用户
PR优先级,数值越小,优先级越高
NI优先级,数值越小、优先级越高
VIRT该进程使用的虚拟内存的大小,单位为 KB
RES该进程使用的物理内存的大小,单位为 KB
SHR共享内存大小,单位为 KB
S进程状态
%CPU该进程占用 CPU 的百分比
%MEM该进程占用内存的百分比
TIME+该进程共占用的 CPU 时间
COMMAND进程的命令名

第一行:任务队列信息

16:13:19系统时间
up 3:07系统已运行时长
4 user当前登录用户数
load average: 0.00,0.01,0.05系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值

第二行:进程信息

tasks总进程数
running正在运行的进程数
sleeping休眠的进程数
stopped终止的进程数
zombie僵死的进程数

第三行:CPU信息

us用户模式占用
sy系统模式占用
ni改变过优先级的用户进程占用
id空闲 CPU 占用
wa等待输入/输出的进程占用
hi硬中断请求服务占用
si软中断请求服务占用
st虚拟化占用

第四行:物理内存信息

total总内存空间
free空闲内存
used已用内存
buff/cache物理内存和交换内存的缓冲区总和

第五行:行为交换空间的信息

total总交换空间
free空闲交换空间
used已用交换空间
avail Mem可用物理空间

常用命令

P 键根据CPU使用百分比大小进行排序
M 键根据驻留内存大小进行排序
N 键根据启动时间进行排序
c 键切换显示命令名称和完整命令行
h 键可以获得 top程序的在线帮助信息
k 键根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程
q 键退出 top 程序
数字1 键显示CPU个数和状态

CPU使用率和CPU负载:

  • CPU使用率是指CPU在某个时间段内被使用的比例,以百分比表示。反映了CPU的使用强度
  • CPU负载是指CPU正在处理的任务数或等待CPU处理的任务数。反映了系统中的任务繁忙程度

2.2.小提问:

查看 load average 的命令

top

w

uptime

load average 的值在什么情况可认为是异常的

当平均负载长时间高于CPU数量的70%

load average 平均负载高是因为什么

可能是CPU密集型进程多导致,也可能是I/O繁忙导致

3.pgrep命令

  • 根据特定条件查询进程PID信息

pgrep -l "-log" 

-l:显示进程名 缺省时只输出PID号

pgrep -l -U teacher -t tty2

-U:指定特定用户

-t:指定终端

4.pstree命令

  • 以树形结构列出进程信息
-a显示完整信息
-u列出对应用户名
-p列出对应pid号

三.控制进程

1.进程的启动方式

手工启动

  • 前台启动:用户输入命令,直接执行程序
  • 后台启动:在命令行尾加入“&”符号

调度启动

  • 使用at命令,设置一次性计划任务
  • 使用crontab命令,设置周期性计划任务

2.进程的前后台调度

Ctrl+Z组合键将当前进程挂起,即调入后台并停止执行
jobs [-l]查看处于后台的任务列表
fg+序号将后台的进程恢复到前台运行,可指定任务序号
bg+序号重新开始任务
Ctrl+C组合键中断正在执行的命令

3.终止进程

3.1.Ctrl+C组合键

  • 终端正在执行的命令

3.2.kill、killall命令

  • kill用于终止指定PID号的进程
  • killall用于终止指定名称相关的所有进程
  • -9选项用于强制终止

注意:kill是向进程发送信号的方式杀掉进程

kill默认选项为 -15,发送信号 SIGTERM,表示告诉进程自行停止运行并退出,进程可以忽略
kill -9发送信号 SIGKILL,表示进程要立即退出,且不能被捕捉或忽略
kill -3发送信号 SIGQUIT,表示进程自行退出,并打印进程各个线程的堆栈信息,保存路径为 /proc/${pid}/cwd,文件名为 antBuilderOutput.log
kill -1发送信号 SIGHUP,表示进程重新加载配置文件,不退出

3.3.总结:

如果是让进程自己执行退出离场程序就使用kill命令,这样进程可以自己执行一些清理动作然后退

出。如果进程卡死,你需要记录当时的事故现场,那么应该用kill -3来记录事故现场的信息然后退

出。如果你什么也不需要,就是要杀死一个进程那么就是用kill -9命令,很暴力的杀死它

3.4.pkill命令

  • 根据特定条件终止相应的进程
  • 常用命令选项
  1. -U:根据进程所属的用户名终止相应进程
  2. -t:根据进程所在的终端终止相应进程

四.计划管理任务

1.at命令

  • 一次性计划任务
  1. 由包 at 提供
  2. 依赖与atd服务,需要启动才能实现at任务
  3. at队列存放在/var/spool/at目录中,ubuntu存放在/var/spool/cron/atjobs目录下
  4. 执行任务时PATH变量的值和当前定义任务的用户身份一致

常用参数

atq查看系统中的等待作业
-d删除系统中的等待作业(等效于atrm命令)
-c打印任务的内容
-q使用指定的列队
-f将指定文件提交等待作业
-t以时间的形式提交运行作业

2.crontab命令

  • 按照预先设置的时间周期(分钟、小时、天、月、周)重复执行用户指定的命令操作
  • 属于周期性计划任务
  • 主要设置文件
  1. 全局配置文件,位于文件:/etc/crontab 
  2. 系统默认的设置,位于目录:/etc/cron.*/
  3. 用户定义的设置,位于文件:/var/spool/cron/用户名

2.1管理crontab计划任务

编辑计划任务

crontab -e [-u 用户名] //-u缺省时默认时针对当前用户

查看计划任务

crontab -l [-u 用户名]

删除计划任务

crontab -r [-u 用户名]

常用参数

-e编辑该用户的计时器设置
-l列出该用户的计时器设置
-r删除该用户的计时器设置
-u指定要设定计时器的用户名称
–help显示帮助信息

2.2.crontab任务配置格式

分钟

取值为0到59之间的任意整数

小时取值为0到23之间的任意整数
日期取值为1到31之间的任意整数
月份取值为1到12之间的任意整数
星期取值为0到7之间的任意整数,0或7代表星期日
命令要执行的命令或程序脚本

符号说明

*表示该范围内的任意时间
表示间隔的多个不连续的时间点
-表示一个连续的时间范围
/指定间隔的时间频率 (写在第一个 */2 每隔2分钟)

2.3.相关测试:

答案:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用easyexcel将csv转为excel

一.背景 供应商系统下载的csv文件不支持域控&#xff08;主要是第三方wps服务不能对csv文件加密&#xff0c;但是可以对office系列产品进行权限访问的加密控制&#xff09;。因此思路就改为现将csv文件转为excel文件&#xff0c;然后对excel文件进行加域控制。本文主要介绍如何…

MySQL学习笔记5——函数和索引

函数和索引 一、函数1、数学函数2、字符串函数3、条件判断函数 二、索引1、索引是什么2、单字段索引3、组合索引4、总结 一、函数 MySQL提供了很多功能强大&#xff0c;而且使用起来非常方便的函数&#xff0c;包括数学函数、字符串处理函数和条件判断函数等。 1、数学函数 …

Flink面试(1)

1.Flink 的并行度的怎么设置的&#xff1f; Flink设置并行度的几种方式 1.代码中设置setParallelism() 全局设置&#xff1a; 1 env.setParallelism(3);  算子设置&#xff08;部分设置&#xff09;&#xff1a; 1 sum(1).setParallelism(3) 2.客户端CLI设置&#xff0…

shell简单联系项目

文章目录 推荐一个vscode上的好用的神奇如何使用的方式连接主机的方式配置新主机配置信息启动连接的方式 联系shell 命令的方式读取文件信息设置本地环境变量的方式获取随机数的方式简单案例信息 推荐一个vscode上的好用的神奇 如何使用的方式 连接主机的方式 配置新主机 配置…

运维小技能:nacos部署(外接mysql)

文章目录 I 安装nacos(m1版本)1.1 镜像启动1.2 查看docker容器日志1.3 开启鉴权II 外接mysql的docker部署方式2.1 复制mysql-schema.sql2.2 导入mysql-schema.sqlIII 配置远程用户3.1 创建数据库远程用户3.2 查看远程用户是否有密码I 安装nacos(m1版本) docker search nacos:查…

集成触发器(数电笔记)

同步触发器&#xff1a; 主从触发器&#xff1a; 边沿触发器&#xff1a;

【团体程序设计天梯赛】L2-052 吉利矩阵

思路&#xff1a; 直接回溯枚举每一个位置填的数&#xff0c;二维肯定是不方便的&#xff0c;我们转成一维&#xff0c;下标x从0到n*n-1。二维数组下标从0到n-1&#xff0c;在一维中下标为x的点在二维中对应行是x/n&#xff0c;列是x%n。 每个数最小能填的是0&#xff0c;最大…

一套在线画图工具(突突图 Procviz)

突突图(Procviz)是一款面向跨平台作图平台。支持流程图、思维导图、框架图、组织架构图、ER图、网络拓扑图等。实现了多团体同时协作&#xff0c;实时同步&#xff0c;解决跨地域合作作图的问题。平台提供了丰富的模板和素材库&#xff0c;轻松完成作图&#xff0c;效率翻倍。 …

imx6ull设备树驱动--pinctl、ioctl

添加pinctl节点 进入arch/arm/boot/dts目录下dts文件 在iomuxc下添加pinctlled节点 将 GPIO1_IO03 这个 PIN 复用为 GPIO1_IO03&#xff0c;电气属性&#xff08;配置GPIO一些列寄存器&#xff09;值为 0X10B0 添加led设备节点 与上一节一样&#xff0c;在 / 下面添加设备节…

《AIGC辅助数据分析与挖掘》AIGC助力数据可视化:Excel图形化思维与实施技巧

01 前言 在当今的数据分析中&#xff0c;数据可视化扮演着至关重要的角色。作为一款常用工具&#xff0c;Excel提供了丰富的图形展示功能。利用AIGC&#xff0c;我们可以快速选择合适的图形类型&#xff0c;并进行专业的配置&#xff0c;从而使得数据展示更加吸引人且具有更好…

钟薛高创始人称卖红薯也把债还上:网友,您可千万别……

网红雪糕品牌钟薛高&#xff0c;是真的网红属性强到让所有消费品牌羡慕。 纵使跌落神坛、纵使站在「破产」边缘&#xff0c;依然话题感满满&#xff0c;隔段时间&#xff0c;总能上一个热搜。 比如欠薪上热搜、产品降价上热搜、甚至官网微博微信停更&#xff0c;也得上个热搜&…

VSCode插件开发学习

一、环境准备 0、参考文档&#xff1a;VS Code插件创作中文开发文档 1、大于18版本的nodejs 2、安装Yeoman和VS Code Extension Generator&#xff1a; npm install -g yo generator-code 3、生成脚手架 yo code 选择内容&#xff1a; ? What type of extension do yo…

【1524】java投票管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 投票管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

ESG热潮背后

近年来&#xff0c;ESG投资在全球范围内迅速发展&#xff0c;已经成为行业新风口。越来越多的投资者和企业开始关注ESG因素&#xff0c;并将其纳入投资决策和公司运营中。 ESG指环境&#xff08;Environmental&#xff09;、社会&#xff08;Social&#xff09;、公司治理&…

揭秘!综合布线可视化管理软件如何助力集成商实现价值飞跃?

一、弱电集成商发展现状 近期小编通过与多家做弱电集成的朋友交流探讨了解到目前弱电集成商发展如同2024年国内大部分企业一样举步维艰&#xff0c;当然也有个别企业做的项目优质并且利润可观&#xff0c;但是整体不多&#xff0c;总结原因主要有以下几点&#xff1a; 工程项目…

Robbins-Monro(RM)算法【随机近似】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程&#xff0c;个人觉得赵老师的课件深入浅出&#xff0c;很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实践—GridWorld 第…

C语言枚举类型详解

下午好诶&#xff0c;今天小眼神给大家带来一篇C语言枚举类型详解的文章~ 目录 一、枚举类型的声明 二、枚举类型的优点 三、枚举类型的使用 一、枚举类型的声明 枚举顾名思义就是 一 一 列 举 。 比如&#xff1a; 一周从周一到周日共有七天&#xff0c;可以一一列举。 性…

ARM汇编伪指令AREA

ARM伪指令AREA用于定义一个代码段或数据段。其基本的语法格式如下&#xff1a; AREA 段名 属性1,属性2, ... 其中&#xff1a; 段名&#xff1a;是你为代码段或数据段指定的名称。如果段名以数字开头&#xff0c;则该段名需要用“│”括起来&#xff0c;如│1_test│。段名可…

文档在线预览,可以私有化局域网在服务器部署组件来实现在线预览

去官网查看 几行代码即可运行 https://kkfileview.keking.cn/zh-cn/index.html

引用静态方法

import java.util.Arrays; import java.util.Comparator;public class demo1 {//引用public static void main(String[] args) {Integer []arr{1,2,4,3,8,6};//匿名内部类Arrays.sort(arr, new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o…