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

一、进程

1. 相关概念

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

2. 父进程和子进程

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

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

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

3. 进程查看命令

3.1 ps命令 – 显示进程状态

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

ps 选项

常见的选项:

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

进程的信息内容:

ps -auxUSER         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 -elfF 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:退出交互式页面。

进程的信息内容:

toptop - 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+ COMMAND1 root      20   0  166868  11820   8236 S   0.0   0.3   0:01.46 systemd2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp4 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 -e0 * * * * 命令
    
  3. 每天执行一次任务,这里是每天的00:00时执行任务。

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

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

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

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

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

    crontab -e0 8-11 * * * 命令
    

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

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

相关文章

初始JavaEE篇——多线程(8):JUC的组件

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 Callable接口 ReentrantLock synchronized 与 ReentrantLock的区别 信号量&#xff08;Semaphore&#xff09; CountDown…

Java实现JWT登录认证

文章目录 什么是JWT?为什么需要令牌?如何实现?添加依赖&#xff1a;JwtUtils.java&#xff08;生成、解析Token的工具类&#xff09;jwt配置&#xff1a;登录业务逻辑&#xff1a;其他关联代码&#xff1a;测试&#xff1a; 什么是JWT? JWT&#xff08;Json Web Token&…

Meta AR 眼镜团队前负责人加入 OpenAI;visionOS 2.2 Beta 引入超宽屏投屏模式丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09;领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的数据」、「有思考的 文章 …

如何对LabVIEW软件进行性能评估?

对LabVIEW软件进行性能评估&#xff0c;可以从以下几个方面着手&#xff0c;通过定量与定性分析&#xff0c;全面了解软件在实际应用中的表现。这些评估方法适用于确保LabVIEW程序的运行效率、稳定性和可维护性。 一、响应时间和执行效率 时间戳测量&#xff1a;使用LabVIEW的时…

鸢尾博客项目开源

1.博客介绍 鸢尾博客是一个基于Spring BootVue3 TypeScript ViteJavaFx的客户端和服务器端的博客系统。项目采用前端与后端分离&#xff0c;支持移动端自适应&#xff0c;配有完备的前台和后台管理功能。后端使用Sa-Token进行权限管理,支持动态菜单权限&#xff0c;服务健康…

拾光云影 3.3.0 | 高清秒播电视直播,支持IPV4,几千频道

拾光云影是一款Ipv4通用版电视直播APP&#xff0c;界面熟悉但有所改进&#xff0c;操作布局类似TVbox。新增了功能按钮页&#xff0c;提供更多功能。频道清晰&#xff0c;加载速度快&#xff0c;支持港澳台等特殊频道&#xff0c;大部分频道均可秒播。软件内置了直播接口&#…

【HTML】——VSCode 基本使用入门和常见操作

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 零&#xff1a;HTML开发工具VSCode的使用 1&#xff1a;创建项目 2&#xff1a;创建格式模板&#x…

Redis数据库测试和缓存穿透、雪崩、击穿

Redis数据库测试实验 实验要求 1.新建一张user表&#xff0c;在表内插入10000条数据。 2.①通过jdbc查询这10000条数据&#xff0c;记录查询时间。 ②通过redis查询这10000条数据&#xff0c;记录查询时间。 3.①再次查询这一万条数据&#xff0c;要求根据年龄进行排序&#…

zabbix 7.0 安装(服务器、前端、代理等)

https://www.zabbix.com/download 使用上面的地址&#xff0c;按教程执行命令安装

andrular输入框input监听值传递

效果图&#xff1a; step1: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.html <button mat-button (click)“openDialog()”>Open dialog step2: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.ts import {Component, inject}…

考公人数攀升?地信、测绘、地质、遥感等专业,能报考哪些单位

近年来&#xff0c;考公人数持续飙升&#xff0c;国考报名人数更逐年攀升。2025年国家公务员考试共有341.6万人通过资格审查&#xff0c;报录比达86:1。国考报名人数再创新高。 国家公务员考试时间安排 地理学相关岗位分析 地信属于地理科学类&#xff0c;测绘类中不包括地信&…

Pr 视频效果:超级键

视频效果/键控/超级键 Keying/Ultra Key 超级键 Ultra Key效果是 Premiere Pro 中功能强大的抠像工具&#xff0c;主要用于绿幕/蓝幕抠像。通过选择要抠除的颜色&#xff08;通常是绿幕或蓝幕的颜色&#xff09;&#xff0c;即可以将该颜色的像素设为透明&#xff0c;实现主体与…

24-11-1-读书笔记(三十一)-《契诃夫文集》(五)下([俄] 契诃夫 [译] 汝龙)生活乏味但不乏魅力。

文章目录 《契诃夫文集》&#xff08;五&#xff09;下&#xff08;[俄] 契诃夫 [译] 汝龙&#xff09;生活乏味但不乏魅力。目录阅读笔记总结 《契诃夫文集》&#xff08;五&#xff09;下&#xff08;[俄] 契诃夫 [译] 汝龙&#xff09;生活乏味但不乏魅力。 休息&#xff0c…

戴尔电脑 Bios 如何进入?Dell Bios 进入 Bios 快捷键是什么?

BIOS&#xff08;基本输入输出系统&#xff09;是计算机启动时运行的第一个程序&#xff0c;它负责初始化硬件并加载操作系统。对于戴尔电脑用户来说&#xff0c;有时可能需要进入 BIOS 进行一些特定的设置调整&#xff0c;比如更改启动顺序、调整性能选项或解决硬件兼容性问题…

【C++】内存管理(二):operator new/delete

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C的operator new/delete&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 1 new/delete的底层2 new/delete的底层调用顺序3 delete[ ]调用析构函数的次数…

acmessl.cn提供接口API方式申请免费ssl证书

目录 一、前沿 二、API接口文档 1、证书可申请列表 简要描述 请求URL 请求方式 返回参数说明 备注 2、证书申请 简要描述 请求URL 请求方式 业务参数 返回示例 返回参数说明 备注 3、证书查询 简要描述 请求URL 请求方式 业务参数 返回参数说明 备注 4、证…

【docker】docker 环境配置及安装

本文介绍基于 官方存储库 docker 的环境配置、安装、代理配置、卸载等相关内容。 官方安装文档说明&#xff1a;https://docs.docker.com/engine/install/ubuntu/ 虚拟机环境 Ubuntu 20.04.6 LTS 安装步骤 添加相关依赖 sudo apt-get update sudo apt-get install ca-certifi…

机器学习在时间序列预测中的应用与实现——以电力负荷预测为例(附代码)

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 随着数据采集技术的发展&#xff0c;时间序列数据在各个领域中的应用越来越广泛。时间序列预测旨在基于过去的时间数据来…

uniapp+vue加油服务系统 微信小程序

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 基于微信小程序的加油服务系统设计为微信小程序和后台管理两个服务端&#xff0c;并对此设计相应的功能模块如下&#x…

大数据新视界 -- 大数据大厂之 Impala 资源管理:并发控制的策略与技巧(下)(6/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…