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

一.程序和进程

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.mzph.cn/news/826921.shtml

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

相关文章

决策树分类任务实战(python 代码详解)

目录 一、导入库、数据集、并划分训练集和测试集 二、参数调优 (一)第一种调参方法&#xff1a;for循环 (1)单参数优化 ①单参数优化(无K折交叉验证) ②单参数K折交叉验证 优化 (2)多参数优化 ①多参数优化(无K折交叉验证) 参数介绍&#xff1a; ②多参数K折交叉验证…

vulfocus靶场名称: apache-cve_2021_41773/apache-cve_2021_42013

Apache HTTP Server 2.4.49、2.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞&#xff0c;攻击者可利用该漏洞读取到Web目录外的其他文件&#xff0c;如系统配置文件、网站源码等&#xff0c;甚至在特定情况下&#xff0c;攻击者可构造恶意请求执行命令&#xff0c;控…

记录一下hive启动metestore服务时报错

【背景说明】 之前hadoop有问题&#xff0c;把hadoop和MySQL删了重装&#xff0c;hive没有动&#xff0c;然后启hive的metastore服务的时候&#xff0c;显示找不到metastore数据库 【报错】 Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.Generated…

【Java框架】SpringMVC(一)——基本的环境搭建及基本结构体系

目录 MVC模式视图(View)控制器(Controller)模型(Model)JSP Model1JSP Model2MVC的优点MVC的缺点 Spring MVC架构介绍特点 SpringMVC环境搭建(在前面Spring整合Mybatis的基础上)1.创建控制器Controller2.创建springmvc配置文件&#xff0c;并添加Controller的Bean3.web.xml中配置…

# 从浅入深 学习 SpringCloud 微服务架构(二)模拟微服务环境(1)

从浅入深 学习 SpringCloud 微服务架构&#xff08;二&#xff09;模拟微服务环境&#xff08;1&#xff09; 段子手168 1、打开 idea 创建父工程 创建 artifactId 名为 spring_cloud_demo 的 maven 工程。 --> idea --> File --> New --> Project --> Ma…

2024 CKA 最新 | 基础操作教程(十七)

题目内容 设置配置环境&#xff1a; [candidatenode-1] $ kubectl config use-context ek8s Task 将名为 node02 的 node 设置为不可用&#xff0c;并重新调度该 node 上所有运行的 pods。 考点相关内容分析 node 在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c…

VASA-1:一键生成高质量视频,颠覆你的想象!

VASA-1&#xff1a;语音生成AI视频 前言 最近&#xff0c;微软公司公布了一项图生视频的 VASA-1 框架&#xff0c;该 AI 框架只需使用一张真人肖像照片和一段个人语音音频&#xff0c;就能够生成精确逼真的相对应文本的视频&#xff0c;而且可以使表情和面部动作表现的十分自然…

【数据结构】栈和队列(链表模拟队列)

学习本章节必须具备 单链表的前置知识&#xff0c; 建议提前学习&#xff1a;点击链接学习&#xff1a;单链表各种功能函数 细节 详解 本章节是学习用 单链表模拟队列 1. 单链表实现队列 思路如下 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数…

线程互斥及基于线程锁的抢票程序

我们实现一个简单的多线程抢票程序。 #include<iostream> #include<thread> #include<unistd.h> #include<functional> #include<vector> using namespace std; template<class T> using func_tfunction<void(T)>;//返回值为void,…

XUbuntu18.04 源码编译Qt4.5.3的过程

由于新公司很多旧的软件都是基于这个版本做的嵌入式开发。 所以想要自己搭一套基于Linux的非嵌入式开发环境&#xff0c;方便用来调试和编译代码。 这样就可以完成在linux下开发&#xff0c;然后直接嵌入式打包&#xff0c;涉及到界面的部分就不需要上机调试看问题了。 所以…

Axure引用ECharts图表 解决火狐浏览器出错

Axure原型添加Echarts图表&#xff0c;没耐心看文章的可以直接下载示例 Axure中使用ECharts图表示例 1. 打开Axure新建页面 2. 页面添加元件 元件类型随意&#xff0c;矩形、动态面板、热区、图片 甚至段落都可以3. 命名元件 随意命名&#xff0c;单个页面用到多个图表时名…

机器学习-11-基于多模态特征融合的图像文本检索

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中图像文本检索技术。此技术把自然语言处理和图像处理进行了融合。 参考 2024年&#xff08;第12届&#xff09;“泰迪杯”数据挖掘挑战赛 图像特征提取&#xff08;VGG和Resnet特征提取卷积过程详解&…

Facebook账号运营要用什么IP?

众所周知&#xff0c;Facebook封号大多数情况都是因为IP的原因。Facebook对于用户账号有严格的IP要求和限制&#xff0c;以维护平台的稳定性和安全性。在这种背景下&#xff0c;海外IP代理成为了一种有效的解决方案&#xff0c;帮助用户避免检测&#xff0c;更加快捷安全地进行…

学习笔记:Vue2中级篇

Vue2 学习笔记&#xff1a;Vue2基础篇_ljtxy.love的博客-CSDN博客学习笔记&#xff1a;Vue2中级篇_ljtxy.love的博客-CSDN博客学习笔记&#xff1a;Vue2高级篇_ljtxy.love的博客-CSDN博客 Vue3 学习笔记&#xff1a;Vue3_ljtxy.love的博客&#xff09;-CSDN博客 文章目录 5.…

SpringCloud系列(5)--SpringCloud微服务工程公共部分提取

前言&#xff1a;在上一章节中我们创建了两个个SpringCloud工程&#xff0c;但在两个工程中分别存在着一些重复的部分&#xff0c;例如重复的实体类&#xff08;如图所示&#xff09;&#xff0c;这样会造成系统的冗余&#xff0c;所以我们需要把公共的类提取到一个工程里&…

JavaScript变量及数据类型

目录 概述&#xff1a; 变量&#xff1a; 前言&#xff1a; 变量的命名&#xff1a; 定义变量&#xff1a; 为变量赋值&#xff1a; 变量提升&#xff1a; let和const关键字&#xff1a; JS数据类型&#xff1a; 前言&#xff1a; typeof操作符&#xff1a; JS基本…

RK3588 Android13 鼠标风格自定义动态切换

前言 电视产品,客户提供了三套鼠标图标过来,要求替换系统中原有丑陋风格且要支持动态切换, 并且在 TvSetting 中要有菜单,客户说啥就是啥呗,开整。 效果图 test framework 部分修改文件清单 png 为鼠标风格资源图片,这里就不提供了,可自由找一个替换一下就行 framew…

渐进时间复杂度O(n)

基本操作数 算法的运行速度受计算机性能的影响&#xff0c;所以通常考虑算法效率的不是算法运行的实际用时&#xff0c;而是算法运行所需要进行的基本操作的数量。 像加减乘除、访问变量、给变量赋值等都可以看作基本操作。对基本操作的计数或是估测可以作为评判算法用时的指标…

Python turtle海龟绘制美国队长盾牌

使用Python中的turtle模块绘制美队盾牌 具体思路如下&#xff1a; 导入海龟库第1个圆&#xff1a;半径 200&#xff0c;红色填充第2个圆&#xff1a;半径 150&#xff0c;白色填充第3个圆&#xff1a;半径 100&#xff0c;红色填充第4个圆&#xff1a;半径 50&#xff0c;蓝色…

CSS基础常用属性之字体属性(如果想知道CSS的字体属性知识点,那么只看这一篇就足够了!)

前言&#xff1a;在我们学习CSS的时候&#xff0c;主要学习选择器和常用的属性&#xff0c;而这篇文章讲解的就是最基础的属性之一——文字属性。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 废话不多说&#xff0c;让我们直…