Linux 进程与计划任务管理

news2025/2/22 12:59:39

一、程序、进程、线程的概念

1. 程序:是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标计算机体系结构上

2. 进程:是计算机中的软件程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,是系统分配资源和调度的基本单位,也就是说进程可以单独运行一段程序

3. 线程:是进程中的一个实体,是被系统独立调度和分派的基本单位,是CPU调度和分派的最小基本单位,线程自己不拥有操作系统资源,但是该线程可与同属进程的其他线程共享该进程所拥有的全部资源

进程是程序的实体,而线程又是进程的实体。进程又是线程的容器

程序、进程、线程三者关系图:

程序和进程的区别:

程序是静态的,而进程是动态的
程序是永久的,而进程是暂时存在的。
进程是程序的一次执行,而进程总是对应至少一个特定的程序

线程是进程内的基本调度单位

二、查看进程的基本信息

1.ps 命令

1.1 ps -aux    

以简单列表的形式显示出进程信

-a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息
-u:使用以用户为主的格式输出进程信息。
-x:显示当前用户在所有终端下的进程信息

每列信息详解:

USERE 进程的拥有者
PID 进程的ID
%CPU 占用的CPU使用率
%MEN 占用的内存使用率
%VSZ Virtual Memory Size。占用虚拟内存大小。
%RSS Resident Set Size。常驻内存集合大小,表示该进程分配的内存大小。
TYY 终端的次要装置号(minor device number of tty)
STAT 进程的状态,其有以下几种状态表示:

   D: 无法中断的休眠状态 (通常 IO 的进程)
   R: 正在执行中
   S: 睡眠中,可中断
   T: 暂停执行
   Z: 已退出,成为僵尸进程
   W: 没有足够的记忆体分页可分配
   <: 高优先序的行程
   N: 低优先序的行程
   L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)

START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

1.2 ps -elf        

以长格式显示系统中的进程信息

-e:显示系统内的所有进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息

F:进程标志,表示进程的状态
S:进程的状态
UID:运行该进程的用户ID
PID:进程的ID
PPID:父进程的ID
C:进程使用的CPU资源的百分比
PRI:进程的优先级
NI:谦让度值用来参与决定优先级
ADDR:进程的内存地址
SZ:进程的大小
WCHAN:如果进程处于睡眠状态,该列将显示睡眠中的系统函数名
STIME:进程开始的时间
TTY:该进程所在的终端
TIME:CPU实际使用的时间
CMD:产生此进程的命令

2. top 命令

查看进程动态信息

参数详解:

系统任务(Tasks)信息:total 总进程数;running 正在运行的进程数;sleeping 休眠的进程数;stopped 中止的进程数;zombie 僵死无响应的进程数

CPU 占用信息:us 用户占用;sy 内核占用;ni 优先级调度占用;id 空闲CPU;wa I/O 等待占用;hi 硬件中断占用;si 软件中断占用;st 虚拟化占用,要了解空闲的 CPU 百分比,主要看%id 部分。
内存占用(Mem)信息:total 总内存空间;free 空闲内存;used 已用内存;buff/cache 物理内存和交换内存的缓冲区总和。

交换空间(Swap)占用:total 总交换空间;free 空闲交换空间;used 已用交换空间;avail Mem 可用物理空间

3. pgrep 命令

常用的参数
-l:选项可同时输出对应的进程名以及PID
-U:选项查询特定用户的进程
-t:选项查询在特定终端运行的进程

后台挂起vim:

查找“vim”进程:

4. pstree 命令

以树形结构列出进程信息

-p:选项使用时可以同时列出对应的PID号
-u:选项可以列出对应的用户名
-a:选项可以列出完整的命令信息

三、进程的管理

1. 前台运行和后台运行

前台运行:进程在用户当前的命令行界面或图形界面上直接显示和交互,用户可以直接看到进程交互

后台运行:进程在后台运行,用户不会直接看到其输出或操作,通常不需要用户交互

2. 进程的启动方式

2.1 手动启动进程

由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程

前台启动:用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行。进程在后台运行时,用户可以继续在当前终端中输入其他命令,而无须等待该进程结束,适用于运行耗时较长的操作

后台启动:将“&”操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作

2.2 调度启动

在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就需要用户事先进行调度安排,指定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务

使用at命令,设置一次性计划任务

使用crontab命令,设置周期性计划任务

3. 前台与后台调度

3.1 jobs 命令

查看后台进程

-l:选项可以同时显示该进程对应的PID号

3.2 Ctrl + z 组合键

vim编辑器打开/etc/passwd ;使用ctrl + z 组合键,后台挂起,但是会停止运行

3.3 bg 和 fg 命令

使用 bg(BackGround,后台)命令,可以将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作

使用 fg 命令(ForeGround,前台),可以将后台任务重新恢复到前台运行

4.终止进程

4.1 Ctrl + c 组合键

当用户在前台执行某个进程时,可以按Ctrl+C组合键强制进行中断(如命令长时间没有响应的情况下)
中断前台进程的运行后,系统将返回命令行提示符状态等待用户输入新的命令。当按 Ctrl+C 组合键无法终止程序或者需要结束在其他终端或后台运行的进程时, 可以使用专用的进程终止工具 kill、killall 和 pkill

4.2 kill 命令

通过 kill 命令终止进程时,需要使用进程的 PID 号作为参数

若该进程已经无法响应终止信号,则可以结合“-9”    选项强行终止进程:

强制终止进程时可能会导致程序运行的部分数据丢失,慎用

4.3 killall 命令

使用 killall 命令可以通过进程名称来终止进程,当需要结束系统中多个相同名称的进程时,使用 killall 命令将更加方便,效率更高

killall 命令同样也有“-9”选项。例如,执行如下的“killall -9 vim”命令可将所有名为 vim 的进程都强行终止

4.4 pkill 命令

使用 pkill 命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程

“-U”(指定用户)、“-t”(指定终端)

强行终止用户 jqg 的进程(包括shell) 慎用

四、计划任务管理

1. at 一次性计划任务


使用at命令设置的计划任务只在指定的时间点执行一次

指定在15:16 进行重启,可以使用ctrl + d 组合键进行保存

1.1 atq 查看一次性计划任务

1.2 atrm 删除一次性计划任务

若要删除指定编号的 at 任务,可以使用 atrm 命令。删除后的 at 任务将不会被执行, 并且不会显示在 atq 命令的显示结果中,但已经执行过的任务无法删除

2. crontab 周期性计划任务

使用 crontab 命令管理用户的计划任务
设置用户的周期性计划任务列表主要通过 crontab 命令进行,结合不同的选项可以完成不同的计划任务管理操作。常用的选项如下
-e:编辑计划任务列表
-u:指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己)
-l: 列表显示计划任务
-r: 删除计划任务列表

计划任务执行时间按照  分 时 日 月 周 顺序进行

减号“-”:可以表示一个连续的时间范围,如“1-4”表示整数 1、2、3、4。
逗号“,”:可以表示一个间隔的不连续范围,如“3, 4, 6, 8”。
斜杠符号“/”:可以用来指定间隔频率,如在日期字段中的“*/3”表示每隔 3 天

例如:

*    */3    *    *    *     每隔三小时进行

*    13    *    *    3,5   每周三和周五的13点钟

crontab -e  编辑周期计划

crontab -l 进行查看周期性计划

crontab -r 删除周期性计划

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

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

相关文章

某yi逆向sign值

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经…

pdf可以删除其中一页吗?6个软件教你快速进行pdf编辑

pdf可以删除其中一页吗&#xff1f;6个软件教你快速进行pdf编辑 编辑PDF文件并删除特定页面是处理文档时常见的需求&#xff0c;特别是在需要定制或精简文件内容时。以下是几款广受欢迎的PDF编辑软件&#xff0c;它们提供了强大的页面删除功能&#xff0c;帮助用户轻松管理和修…

重新定义 AI 部署效率与性能!ZOLOZ 如何借助 AC2 实现低成本高性能的提优?| AI 案例推荐

AI 容器镜像——面向云上全容器场景 王坚院士提到&#xff0c;算力是人工智能发展的三要素之一&#xff0c;而云计算是最好的提供算力的技术手段&#xff0c;英伟达的黄仁勋也表达过类似的观点。可以说&#xff0c;大模型时代下的 AI&#xff0c;天然就是在云场景里的。 容器…

SpringBoot-第一天学习

SpringBoot介绍-约定大于配置 SpringBoot是在Spring4.0基础上开发的&#xff0c;不是替代Spring的解决方案&#xff0c;而是和Spring框架结合并进一步简化Spring搭建和开发过程的。 如何简化&#xff1f;就是通过提供默认配置等方式让我们更容易&#xff0c;集成了大量常用的…

景区智能厕所系统,打造智能化,人性化公共空间

在智慧旅游的大潮中&#xff0c;景区智能厕所系统正逐渐成为提升公共空间智能化、人性化水平的关键载体。作为智慧城市建设的重要组成部分&#xff0c;智能厕所系统不仅解决了传统公厕存在的诸多问题&#xff0c;更通过科技的力量&#xff0c;为游客创造了更加舒适、便捷的如厕…

StreamSets: 数据采集工具详解

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 欢迎关注微信公众号&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&a…

c/c++ 程序运行的过程分析

c/c编译基础知识 GNU GNU&#xff08;GNU’s Not Unix!&#xff09;是一个由理查德斯托曼&#xff08;Richard Stallman&#xff09;在1983年发起的自由软件项目&#xff0c;旨在创建一个完全自由的操作系统&#xff0c;包括操作系统的内核、编译器、工具、库、文本编辑器、邮…

渲染农场渲染真的很贵吗?如何正确使用云渲染农场?

作为渲染行业主流的技术服务“渲染农场"&#xff0c;一直都是备受大家关注&#xff0c;渲染农场最核心的在于充足的计算机算力&#xff0c;结合3D软件支持多台机器渲染的特点&#xff0c;租用渲染农场的机器帮助你快速的解决你的渲染项目。 虽然说渲染农场需要支付一定的…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架&#xff0c;它提供了一种新的开发方式和更好的性能体验&#xff0c;帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是&#xff1a;Astro这个是一个网站生成器&#xff0c;可以直接…

MinIO:开源对象存储解决方案的领先者

MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统&#xff0c;致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释&#xff1a;MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适…

因版本冲突导致logback的debug日志不打印

因框架调整&#xff0c;降级了logback的版本号&#xff0c;由1.3.12降级为1.2.11&#xff08;因框架限制&#xff0c;只能采用1.2版本&#xff09;&#xff0c;降级后发现debug日志无法打印出来&#xff0c;logback.xml配置文件不生效。后排查发现是与slf4j的版本兼容问题 依赖…

以某头部基金实践为例,验证深信服超融合对TA系统承载能力

TA&#xff08;Transfer Agent&#xff09;开放式基金登记过户系统是交易管理系统的重要组成部分&#xff0c;是登记注册机构向投资者提供账户管理、份额登记、交易清算、红利发放、持有人名册保管的综合服务系统。 作为开放式基金运作的核心系统之一&#xff0c;承担着投资者…

Qt 加载图片的几种方式 以及加载 loading

项目中经常使用加载图片&#xff1a; 常用有两种方式&#xff1a; 1.使用 QWidget 加载图片&#xff1a; 效果&#xff1a; 样例源码&#xff1a; int pict_H ui->widgetImage->height();int pict_W ui->widgetImage->width();ui->widgetImage->setFixe…

【车载开发系列】GIT安装详细教程

【车载开发系列】GIT安装详细教程 【车载开发系列】GIT安装详细教程 【车载开发系列】GIT安装详细教程一. GIT软件概念二. GIT安装步骤三. GIT安装确认三. GIT功能使用1&#xff09;Git Bash2&#xff09;Git CMD3&#xff09;Git FAQs4&#xff09;Git GUI 一. GIT软件概念 G…

comsol随机材料参数赋值

comsol随机材料参数赋值 在comsol中定义外部matlab函数 在comsol中定义外部matlab函数 首选项&#xff0c;安全性&#xff0c;允许 材料中&#xff0c;将杨氏模量更改为变量函数 计算 应力有波动&#xff0c;可见赋值成功 也可以看到赋值的材料参数&#xff1a;

针对 LLM 应用程序优化 RAG

前言 大型语言模型 (LLM)&#xff08;如 GPT-4&#xff09;在生成类似人类的文本方面表现出了令人印象深刻的能力。然而&#xff0c;在保留事实知识方面&#xff0c;它们仍然面临挑战。这就是检索增强生成 (RAG) 的作用所在——将 LLM 的生成能力与外部知识源相结合。RAG 已成…

TAPD项目管理软件无法与企业微信进行关联

TAPD一段时间未使用后&#xff0c;需要重新启动&#xff0c;此时会出现你的企业微信尚未与TAPD账号关联的提示 解决方案&#xff1a;找到TAPD应用&#xff0c;先删除应用&#xff0c;然后再解除禁用即可

【anaconda】—“conda info“命令后conda配置和环境信息的理解

文章目录 conda配置和环境信息的理解 conda配置和环境信息的理解 安装anaconda成功后&#xff0c;打开cmd&#xff0c;输入"conda info"命令&#xff0c;结果显示如下&#xff1a; conda的配置和环境信息的输出。以下是对每个字段的解释&#xff1a; active environm…

【MySQL】详解

SQL语句的分类&#xff1a; 1.DDL&#xff08;Data Definition Languages&#xff09;语句&#xff1a; 数据定义语言 &#xff0c;这些语句定义了不同的数据段&#xff0c;数据库&#xff0c;表&#xff0c;列&#xff0c;索引等数据库对象的定义。常用的语句关键字主要包括…

spark shuffle写操作——BypassMergeSortShuffleWriter

创建分区文件writer 每一个分区都生成一个临时文件&#xff0c;创建DiskBlockObjectWriter对象&#xff0c;放入partitionWriters 分区writer写入消息 遍历所有消息&#xff0c;每一条消息都使用分区器选择对应分区的writer然后写入 生成分区文件 将分区writer的数据flu…