C02S10-Linux的进程和计划任务管理

news2024/11/13 11:29:07

一、进程

1. 相关概念

  1. 程序:没有运行的代码,是指令和规则的集合,定义了要执行和操作的任务。
  2. 进程:正在运行的代码,是程序的执行实例。
  3. 线程:是计算机进行运算的最小单位,是进程中实际允许的单位。

2. 父进程和子进程

在操作系统中,父进程和子进程是描述进程之间创建和被创建关系。下面是父进程和子进程的具体关系:

父进程是创建另一个进程的进程。当一个进程创建一个新的进程时,它就成为了新进程的父进程。父进程可以控制子进程的创建、执行和终止,通常负责子进程的资源分配和同步。

子进程是由另一个进程(父进程)创建的进程,可以继承父进程的某些属性,如环境变量和文件描述符。子进程在创建时会复制父进程的代码和数据,但拥有自己的内存空间和执行状态。可以执行与父进程不同的任务,也可以与父进程通信和同步。

3. 进程查看命令

3.1 ps命令 – 显示进程状态

ps命令来自英文单词process的缩写,功能是显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息,例如进程的号码、发起者、系统资源(处理器与内存)使用占比、运行状态等。

ps 选项

常见的选项:

选项功能
-a显示所有进程
-u显示进程的所属用户
-x显示进程详细信息
-e显示所有进程信息
-l详细展示进程信息
-f完整格式展示进程信息

进程的信息内容:

ps -aux

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.2 166868 11820 ?        Ss   09:14   0:01 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    09:14   0:00 [kthreadd]
  • USER:进程的所属用户。
  • PID:进程号,是进程的全局唯一标识。
  • %CPU:进程所占用的CPU资源百分比。
  • %MEM:进程所占用的内存资源百分比。
  • VSZ:进程使用的虚拟内存大小。
  • RSS:进程使用的物理内存大小。
  • TTY:进程所在的终端。
  • STAT:进程的当前状态。
    • S:休眠状态,可以中断。Ss表示进程有子进程。
    • T:停止状态。
    • D:不可中断的休眠状态。
    • Z:僵死状态。
    • I(大写的i):空闲状态。
    • <:进程的执行优先级较高。
    • N:进程的执行优先级较低。
    • l(小写的L):子进程的线程。
    • +:进程显示在前台。
  • START:进程启动的时间。
  • TIME:进程占用CPU的时间。
  • COMMAD:启动进程的命令。
ps -elf

F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root           1       0  0  80   0 - 41717 ep_pol 09:14 ?        00:00:01 /sbin/init splash
1 S root           2       0  0  80   0 -     0 kthrea 09:14 ?        00:00:00 [kthreadd]
  • F:标志位,进程的系统标记。
  • S:进程的状态。
  • UID:进程所属用户的ID。
  • PID:进程号。
  • PPID:父进程号。
  • C:进程对CPU的使用率。
  • PRI:进程的优先级。
  • NI:进程的nice值,影响进程的优先级。
  • ADDR:进程的内存地址。
  • SZ:进程使用的虚拟内存大小。
  • WCHAN:进程正在等待的内核函数或资源。
  • STIME:进程启动的时间。
  • TTY:进程所在的终端。
  • TIME:进程累计使用CPU的时间。
  • CMD:启动进程的命令。

ps -aux适用于查看进程占用的资源信息,ps -elf适用于查看进程在系统中的详细信息。

怎么查看一个进程在系统中的资源占用情况,以及占用CPU/内存过高,处理的方法?

  1. 使用ps -aux定位找到这个进程,获取PID号。
  2. 再使用ps -elf | grep PID号 查看进程的详细信息。
  3. 根据实际使用情况来处理。kill -9 PID号,强制杀死进程。

怎么删除一个僵死进程?

  1. 僵死进程占用的资源不多,可以不用删除。
  2. 僵死进程无法使用kill -9强制杀死,一定要清除就需要重启设备。

3.2 top命令 – 实时显示系统运行状态

top命令的功能是实时显示系统运行状态,包含处理器、内存、服务、进程等重要资产信息。

top [选项]

常见的选项:

选项功能
-b使用非交互模式
-n指定显示的次数

交互页面的常见操作:

1:显示所有CPU的详情。

q:退出交互式页面。

进程的信息内容:

top

top - 11:16:27 up  2:01,  2 users,  load average: 0.00, 0.00, 0.00
任务: 297 total,   1 running, 296 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3870.6 total,   1886.6 free,    860.2 used,   1123.8 buff/cache
MiB Swap:   3898.0 total,   3898.0 free,      0.0 used.   2744.7 avail Mem

进程号 USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND
      1 root      20   0  166868  11820   8236 S   0.0   0.3   0:01.46 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par
  • top - 11:16:27 up 2:01, 2 users, load average: 0.00, 0.00, 0.00:系统概览。

    • 11:16:27:系统当前时间。
    • up 2:01:系统已运行的时间。
    • 2 users:系统用户数量。
    • load average: 0.00, 0.00, 0.00:显示过去1分钟、5分钟和15分钟的平均负载。
  • 任务: 297 total, 1 running, 296 sleeping, 0 stopped, 0 zombie:进程详情。

    • 297 total:系统中总共有297个任务。
    • 1 running:有1个任务正在运行。
    • 296 sleeping:有296个任务处于睡眠状态。
    • 0 stopped:没有任务处于停止状态。
    • 0 zombie:没有僵尸进程。
  • %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st:CPU详情。

    • %Cpu(s): 0.0 us,用户空间占用CPU的百分比为0.0%。
    • 0.0 sy,内核空间占用CPU的百分比为0.0%。
    • 0.0 ni,改变过优先级的进程占用CPU的百分比为0.0%。
    • 100.0 id,CPU空闲的百分比为100.0%。
    • 0.0 wa,等待输入输出的CPU百分比为0.0%,也就是磁盘的读写性能。
    • 0.0 hi,硬件中断的CPU百分比为0.0%。
    • 0.0 si,软件中断的CPU百分比为0.0%。
    • 0.0 st,虚拟环境中,其他虚拟机占用的CPU百分比为0.0%。
  • MiB Mem : 3870.6 total, 1886.6 free, 860.2 used, 1123.8 buff/cache:内存详情。

    • MiB Mem : 3870.6 total,总内存为3870.6 MiB。
    • 1886.6 free,空闲内存为1886.6 MiB。
    • 860.2 used,已使用的内存为860.2 MiB。
    • 1123.8 buff/cache,用作缓冲区和缓存的内存为1123.8 MiB。
  • MiB Swap: 3898.0 total, 3898.0 free, 0.0 used. 2744.7 avail Mem:虚拟内存详情。

    • MiB Swap: 3898.0 total,总虚拟内存大小为3898.0 MiB。
    • 3898.0 free,空闲虚拟内存为3898.0 MiB。
    • 0.0 used,已使用的虚拟内存大小为0.0 MiB。
    • 2744.7 avail Mem,可用的虚拟内存大小为2744.7 MiB。
  • 进程号:进程全局的唯一标识。

  • USER:进程的所属用户。

  • PR:进程的优先级。

  • NI:nice值,用于调整进程的优先级。

  • VIRT:进程使用的虚拟内存大小。

  • RES:进程使用的常驻内存大小。

  • SHR:进程使用的共享内存大小。

  • %CPU:进程占用的CPU百分比。

  • %MEM:进程占用的内存百分比。

  • TIME+:进程占用CPU的总时间。

  • COMMAND:启动进程的命令。

3.3 pgrep命令 – 检索进程PID号

pgrep命令来自英文词组“process global regular expression print”的缩写,功能是用于检索进程PID号。

pgrep [选项] 进程名

常见的选项:

选项功能
-a显示进程的PID和详细信息
-c统计进程的数量
-f匹配进程名

3.4 jobs命令 – 显示终端后台的作业信息

jobs命令来自英文单词“job”,功能是用于显示终端后台的进程信息。

jobs [选项]

常见的选项:

选项功能
-l显示后台进程和进程号
-n显示上次查看后状态变化的进程
-r显示正在运行的进程
-s显示已经停止的进程

3.5 pstree命令 – 以树状图形式显示进程信息

pstree命令来自英文词组“display a tree of processes”的缩写,功能是用于以树状图形式显示进程信息。

pstree [选项]

常见的选项:

选项功能
-u显示进程所属用户
-p显示进程的PID

4. 系统五大负载指标

4.1 CPU

查看CPU负载的命令有:top、htop。

4.2 内存

查看内存负载的命令有:free、top。

清理内存的缓存:echo 1 > /proc/sys/vm/drop_caches

4.3 磁盘

查看内存负载的命令有:iostat。

4.4 网络

查看网络负载的命令有:ifconfig、iftop。

4.5 进程

查看进程负载的命令有:top、ps。

二、定时任务

1. crontab命令– 管理定时计划任务

在Linux系统中,cron是负责执行定时任务的服务。它使用crontab命令来管理定时任务,每个用户都有一个对应的 crontab 文件,允许该用户设置定时任务。

crontab [选项]

常见的选项:

选项功能
-e编辑任务
-l查看任务
-r删除任务
-u设置用户

在Ubuntu系统中,基本上第一次使用crontab命令编辑定时任务,会提示选择文本编辑器。默认是nano,可以根据习惯选择vim编辑器。如果没有提示设置,则可以使用select-editor命令,选择crontab的编辑器。

除此之外,crontab 任务的标准输出和标准错误默认情况下是发送到 /dev/null 的,这意味着不会在终端或任何地方看到输出结果。要想看到数据结构,则需要在设置定时任务时,指定标准输出和标准输入的重定向文件。

2. crontab任务基本格式

分钟 小时 日期 月份 星期 命令
  • 时间可以使用*字符表示,也就是表示任意时间。
  • 分钟:范围是0-59。
  • 小时:范围是0-23。
  • 日期:范围是1-31。、
  • 月份:范围是1-12。
  • 星期:范围是0-7,0和7都可以表示星期日。
  • 命令:定时执行的命令或脚本等。

3. 定时任务常见操作

  1. 每分钟执行一次任务。

    crontab -e
    
    * * * * * 命令
    
  2. 每个小时执行一次任务,这里是每个小时整点的时候执行任务。

    crontab -e
    
    0 * * * * 命令
    
  3. 每天执行一次任务,这里是每天的00:00时执行任务。

    crontab -e
    
    0 0 * * * 命令
    
  4. 每周执行一次任务,这里是每周星期一的00:00时执行任务。

    crontab -e
    
    0 0 * * 1 命令
    
  5. 每月执行一次任务,这里是每个月1号的00:00时执行任务。

    crontab -e
    
    0 0 1 * * 命令
    
  6. 每隔三天执行一次任务。

    crontab -e
    
    0 0 */3 * * 命令
    
    • */3:这里表示每3天。
  7. 每天的上午8点和下午3点各执行一次任务。

    crontab -e
    
    0 8,15 * * * 命令
    
    • 8,15:表示8点和15点。
  8. 每天8点到11点之间的整点时,执行指定任务。

    crontab -e
    
    0 8-11 * * * 命令
    

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

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

相关文章

第二届计算机网络技术与电子信息工程国际学术会议(CNTEIE 2024,12月6-8日)

第二届计算机网络技术与电子信息工程国际学术会议&#xff08;CNTEIE 2024&#xff09; 2024 2nd International Conference on Computer Network Technology and Electronic and Information Engineering 重要信息 会议官网&#xff1a;www.cnteie.org 2024 2nd Internation…

Git 入门篇(一)

前言 操作系统&#xff1a;win11 64位 与gitee搭配使用 Git 入门篇&#xff08;一&#xff09; Git 入门篇&#xff08;二&#xff09; Git 入门篇&#xff08;三&#xff09; 目录 git下载、安装与配置 下载 安装 配置 git下载、安装与配置 下载 官网&#xff1a;git-…

WPS文档中的“等线”如何删除

如何删除“等线”占用的行如何删除表格之间的空行WPS文档中的“等线”是什么如果删除脚注文本占用的行 如下这种&#xff0c;在文档中添加了表格和脚注&#xff0c;发现上下表格之间有多行空行&#xff0c;鼠标选中&#xff0c;显示是“等线”&#xff0c;那么如何去除等线占用…

题目讲解15 合并两个排序的链表

原题链接&#xff1a; 合并两个排序的链表_牛客题霸_牛客网 思路分析&#xff1a; 第一步&#xff1a;写一个链表尾插数据的方法。 typedef struct ListNode ListNode;//申请结点 ListNode* BuyNode(int x) {ListNode* node (ListNode*)malloc(sizeof(ListNode));node->…

计算机网络基本概念总结

IP地址 概念 使网络中的设备都有唯一的地址标识&#xff0c;用于表示其在网络中的位置。 格式 IP地址是一个32位的二进制数&#xff0c;通常被分割为4个8位二进制数&#xff08;也就是4个字节&#xff09;&#xff0c;如&#xff1a;01100100.00001000.00001010.00000110。通常…

Pandas | 特征列大量数据异常需要填充数据时注意事项

问题描述 一组数据如下&#xff1a; df.isnull().sum()城市 0 名称 0 星级 1529 评分 0 价格 1 销量 1 省/市/区 0 坐标 0 简介 41 是否免费 0 具体地址 3 dtype: int64df[星级]0…

Science Robotics 综述揭示演化研究新范式,从机器人复活远古生物!

在地球46亿年的漫长历史长河中&#xff0c;生命的演化过程充满着未解之谜。如何从零散的化石证据中还原古生物的真实面貌&#xff1f;如何理解关键演化节点的具体过程&#xff1f;10月23日&#xff0c;Science Robotics发表重磅综述&#xff0c;首次系统性提出"古生物启发…

[编译报错]ImportError: No module named _sqlite3解决办法

1. 问题描述&#xff1a; 在使用python进行代码编译时&#xff0c;提示下面报错&#xff1a; "/home/bspuser/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 18, in <module>import sqlite3File "/usr/local/lib/python2.7/sqlite3/_…

EasyExcel的AbstractColumnWidthStyleStrategy注入CellStyle不生效

设置背景色 CellStyle style workbook.createCellStyle();style.setFillForegroundColor(IndexedColors.RED.getIndex()); // 是设置前景色不是背景色style.setFillPattern(FillPatternType.SOLID_FOREGROUND)EasyExcel.writerTable(0).head(Head1.class).registerWriteHandl…

iphone怎么删除重复的照片的新策略

Phone用户常常面临存储空间不足的问题&#xff0c;其中一个主要原因是相册中的重复照片。这些重复项不仅占用了大量的存储空间&#xff0c;还会影响设备的整体性能。本文将向您展示iphone怎么删除重复的照片的方法&#xff0c;包括一些利用工具来自动化这个过程的创新方法。 识…

AI4SCIENSE(鄂维南院士:再谈AI for Science)

鄂维南院士&#xff1a;再谈AI for Science_哔哩哔哩_bilibili 以往处理高维问题 量子力学&#xff1a;单变量乘积 统计学&#xff1a;旋转 AI4S 处理数据 蛋白质折叠&#xff1f; 不是纯粹的数据驱动 物理学等学科基本原理 例&#xff1a;分子动力学 数据模型 流程图 这…

learn C++ NO.31——类型转换

C语言中的类型转换 在C语言中&#xff0c;当赋值符号两边的类型不匹配的时候&#xff0c;或者是形参类型和实参类型不匹配时&#xff0c;返回值类型与接受返回值类型不匹配时&#xff0c;都会需要类型转换。C语言的类型转换有两种&#xff1a;显示类型转换和隐式类型转换。 显…

基于Spring Boot的养老保险管理系统的设计与实现,LW+源码+讲解

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统养老保险管理系统信息管理难度大&#xff0c;容错率低&a…

w029基于springboot的网上购物商城系统研发

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0…

Unet++改进8:添加SpatialGroupEnhance||空间群智能增强:改进卷积网络中的语义特征学习

本文内容:添加SpatialGroupEnhance 论文简介 卷积神经网络(Convolutional Neural Networks, cnn)通过收集分层的、不同部分的语义子特征来生成复杂对象的特征表示。这些子特征通常以分组的形式分布在每一层的特征向量中[43,32],代表各种语义实体。然而,这些子特征的激活往往…

十八:Spring Boot 依赖(3)-- spring-boot-starter-data-jpa 依赖详解

目录 1. 理解 JPA&#xff08;Java Persistence API&#xff09; 1.1 什么是 JPA&#xff1f; 1.2 JPA 与 Hibernate 的关系 1.3 JPA 的基本注解&#xff1a;Entity, Table, Id, GeneratedValue 1.4 JPA 与数据库表的映射 2. Spring Data JPA 概述 2.1 什么是 Spring Dat…

MQTT协议解析 : 物联网领域的最佳选择

1. MQTT协议概述 1.1 MQTT协议是什么 MQTT : Message Queuing Telemetry Transport 模式 : 发布 / 订阅主题优点 : 代码量小、低带宽、实时可靠应用 : 物联网、小型设备、移动应用MQTT 常用端口 : 1883 MQTT是一个网络协议&#xff0c;和HTTP类似&#xff0c;因为轻量简单&…

Pytorch实现transformer语言模型

转载自&#xff1a;| 03_language_model/02_Transformer语言模型.ipynb | 从头训练Transformer语言模型 |Open In Colab | Transformer语言模型 本节训练一个 sequence-to-sequence 模型&#xff0c;使用pytorch的 nn.Transformer <https://pytorch.org/docs/master/nn.ht…

ElasticSearch向量检索技术方案介绍

1、背景 在人工智能快速发展的今天&#xff0c;推荐技术、以文搜图、以文搜视频、以图搜图等技术已经得到了广泛的应用&#xff0c;在百度、小红书、抖音、快手等app上随便输入一段文本&#xff0c;搜索结果已不像早些年那么单一&#xff1a;只有一些文字信息&#xff0c;现在的…

算法(第一周)

一周周五&#xff0c;总结一下本周的算法学习&#xff0c;从本周开始重新学习许久未见的算法&#xff0c;当然不同于大一时使用的 C 语言以及做过的简单题&#xff0c;现在是每天一题 C 和 JavaScript&#xff08;还在学&#xff0c;目前只写了一题&#xff09; 题单是代码随想…