Linux-进程和计划任务管理⭐

目录

一、程序和进程

1.程序

2.进程

3.线程与进程

二、ps查看静态进程信息 

1.ps aux 命令

2.ps-静态查看系统进程

3.ps -elf

三、top-查看进程动态信息

四、pgrep查看进程信息 

五、pstree-查看进程树

六、控制进程

1.进程启动方式

2.调度启动

3.进程的前后台调度

4.终止进程

七、计划任务管理

1.at一次性任务设置

2.crontab周期性任务设置


一、程序和进程

1.程序

程序用于告诉计算机如何执行特定的任务或操作。可以保存在硬盘、光盘等介质中的可执行代码和数据文件中,也可以存在于计算机内存中。

这些文件包含了程序的静态保存的代码,即在程序被执行之前就已经存在的指令和数据。

2.进程

在CPU及内存中运行的程序代码

动态执行的代码

父、子进程

每个程序可以创建一个或多个进程

3.线程与进程

进程是程序的一次执行,是操作系统资源分配和管理的基本单位,包括代码、数据、堆栈、文件句柄等。

线程是进程中的一个执行流程,是CPU调度的基本单位,共享进程的资源,包括内存、文件和其他系统资源。

进程之间通常是相互独立的,每个进程有独立的内存空间,通过进程间通信来实现数据共享和通信。

线程之间共享相同的地址空间和其他进程资源,线程之间的数据共享和通信更为方便,因为它们不需要通过复杂的IPC机制。

二、ps查看静态进程信息 

1.ps aux 命令

用于显示当前系统上运行的进程信息。

USER: 进程的用户。
PID: 进程的 PID(进程标识符)。
%CPU: 进程占用的 CPU 百分比,表示进程占用 CPU 资源的程度,占用越高,进程消耗的资源越多。
%MEM: 进程占用内存的百分比,表示进程在系统内存中的使用情况。
VSZ: 该进程使用的虚拟内存量(单位为 KB),即进程在虚拟内存空间中所占用的大小。
RSS: 该进程占用的实际物理内存量(单位为 KB),即进程在物理内存中所占用的大小。
TTY: 运行终端,如果进程是从终端启动的,则显示终端名;如果不是,则显示 
STAT: 进程的状态,通常包括👇
D: 不可中断的休眠状态
R: 正在运行状态
S: 处于休眠状态,可被唤醒
T: 停止状态,可能是在后台暂停或进程处于跟踪调试状态
Z: 僵尸进程,进程已经中止,但是部分程序还在内存中
TART: 该进程被启动的时间。
TIME: 该进程实际使用 CPU 的时间。
COMMAND: 进程的名称与参数。

2.ps-静态查看系统进程

ps- 常用选项

a: 显示当前终端下的所有进程信息,包括其他用户的进程。
u: 使用以用户为主的格式输出进程信息,通常会显示更详细的用户相关信息。
x: 显示当前用户在所有终端下的进程信息,即显示不受终端限制的所有进程。
e: 显示系统内的所有进程信息,包括所有用户的进程。
l: 使用长格式显示进程信息,通常会显示更多的字段信息。
f: 使用完整的格式显示进程信息,通常会显示更多的父进程和子进程的关系。
a: 显示现行终端下的所有进程信息,与 -e 类似。
T: 查看线程信息,显示进程的线程信息。
--sort 属性: 对属性进行排序,属性前加 - 表示倒序排序,可以按照不同的属性进行排序,如 %CPU、%MEM 等。

3.ps -elf

显示系统中运行的进程的详细信息

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

三、top-查看进程动态信息

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

 第一行:任务队列信息

 top - 02:58:44 up  2:05,  3 users,  load average: 0.00, 0.01, 0.05   👇

02:58:44: 当前时间。
up 2:05: 系统已经运行了 2 小时 5 分钟。
3 users: 当前有 3 个用户登录到系统。
load average: 0.00, 0.01, 0.05: 系统的平均负载情况,分别表示 1 分钟、5 分钟和 15 分钟的负载平均值。在这个示例中,系统的负载非常轻,几乎没有负载。

第二行为 进程信息 

Tasks: 229 total,   1 running, 228 sleeping,   0 stopped,   0 zombie 👇

229 total: 总共有 229 个任务。
1 running: 当前有 1 个任务正在运行。
228 sleeping: 有 228 个任务处于睡眠状态,即等待事件发生或者等待被唤醒。
0 stopped: 没有任务被停止。
0 zombie: 没有僵尸进程,即已经终止但是父进程还没有对其进行善后处理的进程。

 

第三行为 CPU的信息

%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

0.0 us: 用户空间占用 CPU 的百分比(用户空间占用 CPU 的百分比为 0.0%,即用户程序几乎没有占用 CPU)

0.0 sy: 内核空间占用 CPU 的百分比(内核空间占用 CPU 的百分比为 0.0%,即系统内核几乎没有占用 CPU)

0.0 ni: 调整过优先级的进占用 CPU 的百分比(调整过优先级的进程占用 CPU 的百分比为 0.0%)

100.0 id: 空闲 CPU 的百分比(CPU 空闲的时间比例为 100.0%,即 CPU 几乎完全空闲)

0.0 wa: 等待 I/O 的 CPU 时间百分比(CPU 等待 I/O 的时间比例为 0.0%,即没有 CPU 在等待 I/O 操作完成)

0.0 hi: 硬中断占用 CPU 的百分比 (硬中断占用 CPU 的时间比例为 0.0%)

0.0 si: 软中断占用 CPU 的百分比 (软中断占用 CPU 的时间比例为 0.0%)

0.0 st: 虚拟化的虚拟 CPU 的被盗用时间百分比 (虚拟 CPU 的被盗用时间比例为 0.0%。)



 

第四行:内存信息
KiB Mem :  3861252 total,  1836780 free,   902972 used,  1121500 buff/cache

3861252 total: 物理内存总量单位为 KiB。
1836780 free: 空闲内存大小单位为 KiB。
902972 used: 已使用的内存大小单位为 KiB。
1121500 buff/cache: 缓存和缓冲区使用的内存大小单位为 KiB。

 

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

KiB Swap: 4194300 total, 4194300 free, 0 used. 2670372 avail Mem

4194300 total: 交换空间总量,即系统总共可用的交换空间大小,单位为 KiB。
4194300 free: 空闲的交换空间大小,即当前未被使用的交换空间大小,单位为 KiB。
0 used: 已使用的交换空间大小,即当前被系统或应用程序使用的交换空间大小,单位为 KiB。
2670372 avail Mem: 可用内存大小,即系统中当前可用的内存大小,包括未被使用的内存和已被缓存的内存,单位为 KiB。

四、pgrep查看进程信息 

pgrep 是一个用于查找进程的命令

1.基本语法👇

pgrep [选项] <进程名称>

2.常用选项👇

-l: 显示进程名称和 PID。
-t: 指定终端,用于查找在特定终端上运行的进程。
-f: 根据完整的命令行进行匹配,而不仅仅是进程名。
-u <user>: 仅列出指定用户的进程,用于查找特定用户运行的进程。

五、pstree-查看进程树

pstree是一个用于以树状结构显示进程的命令行工具。它可以帮助你更直观地了解系统中运行的进程之间的层次关系。

-a显示完整信息
-u列出对应用户名
-p列出对应pid号

六、控制进程

1.进程启动方式

前台运行: 在命令行直接输入命令并执行,进程会在前台运行,占用当前终端的控制权。


后台运行: 在命令末尾追加 & 符号,进程在后台运行,通过追加 & 后台运行的进程会随着终端的关闭而自动退出。为了避免进程随终端关闭而退出,可以在命令开头位置添加 nohup 命令,格式为 nohup command &。这样进程就会以后台模式运行,并且不会受到终端关闭的影响。

2.调度启动

at一次性任务设置

crontab周期性任务设置

3.进程的前后台调度

Ctrl+Z : 这将当前正在前台运行的进程挂起,即将其调入后台并停止执行。

jobs [-l]: 查看当前处于后台的任务列表。添加 -l 选项可以显示任务的 PID。

fg+序号: 将后台的任务恢复到前台运行。fg 命令后面跟着一个任务的序号,表示将该序号对应的后台任务恢复到前台运行。

4.终止进程

Ctrl+C组合键

        中断正在执行的命令

kill、killall命令

        kill用于终止指定PID号的进程

        killall用于终止指定名称相关的所有进程

        -9选项用于强制终止

kill是如何杀掉进程的? 向进程发送信号的方式杀掉进程

kill(15):默认选项。告诉进程自行停止运行并退出。进程可以捕捉该信号并执行清理工作,然后正常退出。

kill (9):发送 SIGKILL 信号会立即终止进程,且不能被捕捉或忽略。这是一种强制终止进程的方式,进程没有机会进行清理工作,可能会导致数据丢失。

kill(3):发送 SIGQUIT 信号会使进程自行退出,并在退出时打印进程各个线程的堆栈信息。

kill (1):发送 SIGHUP 信号会通知进程重新加载配置文件,但不会使进程退出。

七、计划任务管理

1.at一次性任务设置

  1. at HH:MM [yyyy-mm-dd] 
  2. 输入命令列表 
  3. ctrl + d 提交任务 
  4. atq 查看没执行的任务列表和序号 
  5. atrm <序号> 删除指定的任务

2.crontab周期性任务设置

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

代表意义 

分钟小时日期 月份命令
数字范围0~59 0~23 1~31  1~120~7 需要执行的命令

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

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

相关文章

LeetCode //C - 38. Count and Say Medium Topics Companies

38. Count and Say The count-and-say sequence is a sequence of digit strings defined by the recursive formula: countAndSay(1) “1”countAndSay(n) is the way you would “say” the digit string from countAndSay(n-1), which is then converted into a differen…

Laravel 6 - 第十七章 配置数据库

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

《动手学深度学习(Pytorch版)》Task01:初识深度学习——4.22打卡

《动手学深度学习&#xff08;Pytorch版&#xff09;》Task01&#xff1a;初识深度学习 深度学习介绍AI地图深度学习任务图片分类物体检测和分割样式迁移人脸合成文字生成图片文字生成无人驾驶 案例&#xff1a;广告点击完整过程 QAQ&#xff1a;机器学习的可解释性&#xff1a…

【C++ STL序列容器】list 双向链表

文章目录 【 1. 基本原理 】【 2. list 的创建 】2.1 创建1个空的 list2.2 创建一个包含 n 个元素的 list&#xff08;默认值&#xff09;2.3 创建一个包含 n 个元素的 list&#xff08;赋初值&#xff09;2.4 通过1个 list 初始化另一个 list2.5 拷贝其他类型容器的指定元素创…

swagger文档接口根据包分组配置

文章目录 一、引言二、配置2.1 原本配置及效果2.2 更改后配置及效果 三、结束 一、引言 关于接口文档的详细配置可参见文章API文档生成工具-----Knife4j的详细介绍、配置及应用 此文章是基于已经完成基础配置的前提下,如何根据不同包进行分组 二、配置 2.1 原本配置及效果 …

Hadoop实战——MapReduce-字符统计(超详细教学,算法分析)

目录 一、前提准备工作 启动hadoop集群 二、实验过程 1.虚拟机安装先设置端口转发 2.上传对应文件 3.编写Java应用程序 4. 编译打包程序 5. 运行程序 三、算法设计和分析 算法设计 算法分析 四、实验总结 实验目的&#xff1a;给定一份英文文本&#xff0c;统计每个…

matlab新手快速上手5(蚁群算法)

本文根据一个较为简单的蚁群算法框架详细分析蚁群算法的实现过程&#xff0c;对matlab新手友好&#xff0c;源码在文末给出。 蚁群算法简介&#xff1a; 蚁群算法是一种启发式优化算法&#xff0c;灵感来源于观察蚂蚁寻找食物的行为。在这个算法中&#xff0c;解决方案被看作是…

平衡二叉树、红黑树、B树、B+树

Tree 1、前言2、平衡二叉树和红黑树3、B树和B树3.1、B树的构建3.2、B树和B树的区别3.3、数据的存储方式 1、前言 本文侧重在理论方面对平衡二叉树、红黑树、B树和B树的各方面性能进行比较。不涉及编程方面的实现。而关于于平衡二叉树在C中的实现&#xff0c;我的上一篇文章平衡…

Vue Router基础知识整理

Vue Router基础知识整理 1. 安装与使用&#xff08;Vue3&#xff09;安装使用 2. 配置路径别名和VSCode路径提示&#xff08;了解&#xff09;3. 使用查询字符串或路径传参query动态路由 与 params 4. router-link、定义别名、定义路由名称、编程式导航定义别名 aliasrouter-li…

李沐66_使用注意力机制的seq2seq——自学笔记

加入注意力 1.编码器对每次词的输出作为key和value 2.解码器RNN对上一个词的输出是query 3.注意力的输出和下一个词的词嵌入合并进入RNN 一个带有Bahdanau注意力的循环神经网络编码器-解码器模型 总结 1.seq2seq通过隐状态在编码器和解码器中传递信息 2.注意力机制可以根…

ELK技术介绍:背景、功能及应用场景全面解析

一、ELK概述 ELK是由Elasticsearch、Logstash和Kibana三个开源软件组成的日志管理解决方案&#xff0c;这一组合在近年来得到了广泛的关注和应用。ELK的出现&#xff0c;源于大数据和云计算技术的快速发展&#xff0c;以及对高效日志管理的迫切需求。 随着企业信息化程度…

【10-10-10旁观思维】项目管理必会的思维分析工具 08(送模板~)

&#x1f468;‍&#x1f4bb;&#x1f469;‍&#x1f4bb;面对一个决策或选择&#xff0c;当你犹豫不决时&#xff0c;可以想一下 ⏰10分钟后&#xff0c;自己是怎么看待自己现在的决策&#xff0c;依然保持一致亦或会后悔&#xff1b; ⏰10个月后&#xff0c;你又会如何思…

Javascript 插值搜索与二分搜索

插值搜索和二分搜索都是在有序数组中查找目标元素的算法。它们之间的核心区别在于确定中间元素的方式。 1、二分搜索&#xff08;Binary Search&#xff09;&#xff1a;二分搜索是一种通过将目标值与数组中间元素进行比较&#xff0c;然后根据比较结果缩小搜索范围的算…

Docker资源管理-数据管理

一、CPU 资源控制&#xff1a; 1.cgroups&#xff1a; cgroups&#xff0c;是一个非常强大的linux内核工具&#xff0c;他不仅可以限制被 namespace 隔离起来的资源&#xff0c; 还可以为资源设置权重、计算使用量、操控进程启停等等。 所以 cgroups&#xff08;Control grou…

深度剖析SSD掉电保护机制-1

随着固态硬盘&#xff08;Solid State Drives, SSD&#xff09;在数据中心、企业存储、个人计算设备等领域广泛应用&#xff0c;其数据安全性与可靠性成为至关重要的考量因素。其中&#xff0c;应对突发电源故障导致的数据丢失风险的掉电保护&#xff08;Power Loss Protection…

MA-Chitosan MA甲基丙烯酸修饰羧甲基壳聚糖 MA-Chitosan

MA-Chitosan MA甲基丙烯酸修饰羧甲基壳聚糖 MA-Chitosan、 【中文名称】甲基丙烯酸化羧甲基壳聚糖 【英文名称】Chitosan-MA 【结 构】 【纯 度】95%以上 【保 存】-20℃ 【规 格】10mg,500mg,1g,5g,10g 【产品特性】 Chitosan-MA&#xff08;壳聚糖-甲基丙烯酸…

Verilog基础语法——parameter、localparam与`define

Verilog基础语法——parameter、localparam与define 写在前面一、localparam二、parameter三、define写在最后 写在前面 在使用Verilog编写RTL代码时&#xff0c;如果需要定义一个常量&#xff0c;可以使用define、parameter和localparam三种进行定义与赋值。 一、localparam …

大模型都在用的:旋转位置编码

写在前面 这篇文章提到了绝对位置编码和相对位置编码&#xff0c;但是他们都有局限性&#xff0c;比如绝对位置编码不能直接表征token的相对位置关系&#xff1b;相对位置编码过于复杂&#xff0c;影响效率。于是诞生了一种用绝对位置编码的方式实现相对位置编码的编码方式——…

机器学习day1

一、人工智能三大概念 人工智能三大概念 人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;和深度学习&#xff08;DL&#xff09; 人工智能&#xff1a;人工智能是研究计算代理的合成和分析的领域。人工智能是使用计算机来模拟&#xff0c;而不是人类…

关于Android中的限定符

很多对于Android不了解或是刚接触Android的初学者来说&#xff0c;对于Android开发中出现的例如layout-large或者drawable-xxhdpi这样的文件夹赶到困惑&#xff0c;这这文件夹到底有什么用&#xff1f;什么时候用&#xff1f;这里简单的说一下。 其实&#xff0c;在上面例子中&…