Linux:进程与计划任务

文章目录

  • Linux:进程与计划任务
    • 一、进程
      • 1、进程是什么
      • 2、进程状态
    • 二、列出进程命令
      • 1、查看静态的进程统计信息——“ps”
        • Play1:“ps aux”
        • Play2:ps -elf
      • 2、查看静态的进程统计信息——“top”
        • 段首解析
        • 进程信息区解释
    • 三、运行与终止进程
      • 3.1、运行进程
      • 3.2、进程前后台调度
      • 3.3、使用信号控制进程
      • 3.4、终止进程
    • 四、计划任务
      • 一次性计划任务——at
      • 周期性计划任务——crond

Linux:进程与计划任务

一、进程

1、进程是什么

进程的定义:进程是已启动的可执行程序的运行中实例。

  1. 进程由以下组成部分:

    • 已分配内存的地址空间

    • 安全属性,包括所有权凭据和特权

    • 程序代码的一个或多个执行线程

    • 进程状态

  2. 进程的环境包括:

    • 本地和全局变量

    • 当前调度上下文

    • 分配的系统资源,如文件描述符和网络端口

进程上下文:当一个进程从内核中移出,另一个进程成为活动的, 这些进程之间便发生了上下文切换。 操作系统必须记录重启进程和启动新进程使之活动所需要的所有信息。这些信息实际上是进程执行活动过程的描述信息,称作上下文。

现有的(父)进程复制自己的地址空间(fork)来创建一个新的(子)进程结构。每个新进程分配有一个唯一进程 ID(PID),满足跟踪和安全性之需。PID和父进程ID(PPID) 是新进程环境的元素。任何进程可创建子进程。所有进程都是第一个系统进程的后代,Linux系统上,第一个系统进程是systemd

在这里插入图片描述

进程生命周期

2、进程状态

在多任务处理操作系统中,每个CPU(或 CPU核心)在一个时间点上处理一个进程。在进程运行时,它对 CPU 时间和资源分配的直接要求会有变化。进程分配有一个状态,它随着环境要求而改变。

在单CPU系统上,一次只能运行一个进程。可以看到状态为R的几个进程。但是,并非所有进程都连续运行,其中一些进程处于状态等待状态。

在这里插入图片描述

Linux 进程状态
名称标志内核定义的状态名称和描述
RunningRTASK_RUNNING:进程正在CPU上执行,或者正在等待运行。处于运行中(或可运行)状态时,进程可能正在执行用户例程或内核例程(系统调用),或者已排队并就绪。
SleepingSTASK_INTERRUPTIBLE:进程正在等待某一条件:硬件请求、系统资源访问或信号。当事件或信号满足该条件时,该进程将返回到运行中。
SleepingDTASK_UNINTERRUPTIBLE:此进程也在睡眠,与S状态不同,不会响应信号。进程中断可能会导致意外设备状态的情况。
SleepingKTASK_KILLABLE:与不可中断的D状态相同,但有所修改,允许等待中的任务响应要被中断(彻底退出)的信号。实用程序通常将可中断的进程显示为D状态。
SleepingITASK_REPORT_IDLE:D状态的一个子集。在计算负载平均值时,内核不会统计这些进程。用于内核线程。设置了TASK_UNINTERRUPTABLE和TASK_NOLOAD标志。它接受致命信号。
StoppedTTASK_STOPPED:进程已被停止(暂停),通常是通过用户或其他进程发出的信号。进程可以通过另一信号返回到运行中状态,继续执行(恢复)。
StoppedtTASK_TRACED:正在被调试的进程也会临时停止,并且共享同一个T状态标。
ZombieZEXIT_ZOMB:子进程在退出时向父进程发出信号。除进程身份(PID)之外的所有资源都已释。
ZombieXEXIT_DEAD:当父进程清理(获取)剩余的子进程结构时,进程现在已彻底释放。此状态从不会在进程列出实用程序中看到。
Linux 进程状态名称和描述

二、列出进程命令

1、查看静态的进程统计信息——“ps”

ps命令选项包括两部分:限定查看哪些进程和对选定的进程查看他们哪些属性。

ps 命令支持三种选项格式

  • BSD选项,可以分组但不可与短划线同用;不使用-

  • UNIX(POSIX)选项,可以分组但必须以短划线开头;使用单个-

  • GNU长选项,以双短划线开头;使用两个–

Play1:“ps aux”
选项解释
a显示现行终端下的所有进程,包括其它用户的进程。
u显示进程的归属用户及内存的使用情况。
x显示所有终端的进程。
h不显示标题列。
ps [BSD]选项常用

在这里插入图片描述

ps aux命令
列名描述
USER进程的用户。
PID进程的ID。
%CPU进程占用的CPU百分比,占用越高,进程越耗费资源。
%MEM占用内存的百分比。
VSZ该进程使用的虚拟内存量(KB)。
RSS该进程占用的实际物理内存量(KB)。
TTY启动进程的终端名。不是从终端启动的进程则显示为 ?
STAT该进程的状态
START该进程被启动时间。
TIME该进程实际使用CPU的时间。
COMMAND进程的名称与参数
ps aux命令各列解析
Play2:ps -elf
选项解释
-e显示系统内的所有进程信息。
-l使用长格式显示进程信息。
-f使用完整的格式显示进程信息。
-a显示现行终端下的所有进程。
-T查看线程信息。
-C <进程名称>显示指定进程名的信息。
-p <进程pid>显示指定pid的进程的信息。
-H显示树状结构,表示进程间的相互关系。
–no-headers不显示标题列。
ps UNIX(POSIX)选项常用

在这里插入图片描述

ps -elf命令
列名描述
F内核分配给进程的系统标记。
S进程的状态。
UID启动这些进程的用户。
PID进程的进程ID。
PPID父进程的进程号(如果该进程是由另一个进程启动的)。
C进程生命周期中的CPU利用率。
PRI进程的优先级(越大的数字代表越低的优先级)。
NI谦让度值用来参与决定优先级。
ADDR进程的内存地址。
SZ假如进程被换出,所需交换空间的大致大小。
WCHAN若该进程在睡眠,则显示睡眠中的系统函数名。
STIME进程启动时的系统时间。
TTY进程启动时的终端设备。
TIME运行进程需要的累计CPU时间。
CMD进程的启动命令。
ps -elf命令各列解析

2、查看静态的进程统计信息——“top”

在这里插入图片描述

top命令
选项描述
P根据CPU使用百分比大小进行排序
M根据启动时间进行排序
N根据启动时间进行排序
c切换显示命令名称和完整命令行
h可以获得 top程序的在线帮助信息
k根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程
q退出 top 程序
1显示CPU个数和状态
top常用选项
段首解析
top - 18:58:48 up  1:51,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 298 total,   1 running, 297 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.1 hi,  0.0 si,  0.0 st
MiB Mem :   3615.9 total,   2266.4 free,   1021.0 used,    574.3 buff/cache
MiB Swap:   8028.0 total,   8028.0 free,      0.0 used.   2594.8 avail Mem 
  • 第一行:任务队列信息
18:58:48        ##系统时间
up  1:51        ##系统已运行时长
1 user            ##当前登录用户数
load average: 0.00, 0.00, 0.00        ##系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
  • 第二行:进程信息
Tasks##总进程数
running##正在运行的进程数
sleeping##休眠的进程数
stopped##中止的进程数
zombie##僵死的进程数
  • 第三行:CPU的信息
us        ##用户占用
sy        ##内核占用
ni        ##优先级调度占用
id        ##空闲CPU,要了解空闲的 CPU 百分比,主要看%id 部分
wa        ##I/O 等待占用
hi        ##硬件中断占用
si        ##软件中断占用
st        ##虚拟化占用
  • 第四行:内存的信息
total        ##总内存空间
free        ##空闲内存
used        ##已用内存
buff/cache    ##物理内存和交换内存的缓冲区总和
  • 第五行:交换空间的信息
total        ##总交换空间
free        ##空闲交换空间
used        ##已用交换空间
avail Mem    ##可用物理空间
进程信息区解释
列名描述
PID进程id
USER进程所有者的用户名
PR优先级
NI谦让度值。负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb
RES进程使用的物理内存大小,单位kb
SHR共享内存大小,单位kb
S进程状态
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行
进程信息区各列解释

三、运行与终止进程

3.1、运行进程

前台进程:在命令行输入命令,直接运行;一个终端中只有一个前台进程,该进程可以终端窗口中读取输入和响应键盘生成的信号。
后台进程:在命令末尾追加 & 符号。;在后台运行的进程,该进程不能从终端读取输入或接收键盘产生的中断。后台进程可能暂停,也可能正在运行。如果正在运行的后台作业尝试从终端读取,它将自动暂停。

3.2、进程前后台调度

  • ctrl + z #将前台进程挂起暂停并调入到后台

  • jobs -l #查看挂起调度到后台的进程列表和序号

  • fg <序号> #将挂起到后台的进程调度到前台继续运行

3.3、使用信号控制进程

生成信号(signal)的事件可以是错误,外部事件或者使用信号发送命令或键盘序列。

信号编号端名称定义用途
1HUP挂起用于报告终端控制进程的终止,也用于请求进程重新初始化(重新加载配置)而不终止。
2INT键盘中断导致程序终止。可以被拦截或处理。通过按键序列(Ctrl+c)发送。
3QUIT键盘退出与INT相似:在终止时添加进程转储。通过按键序列(Ctrl+)发送。
9KILL中断,无法拦截导致立即终止程序。无法被拦截、忽略或处理;总是致命的。
15TERM终止kill相关命令,默认信号,导致程序终止。和KILL不同,可以被拦截、忽略或处理。要求程序终止的“友好”方式;允许自我清理。
18CONT继续发送至进程使其恢复(若已停止)。无法被拦截。即使被处理,也始终恢复进程。
19STOP停止,无法拦截暂停进程。无法被拦截或处理。
20TSTP键盘停止和ST0P不同,可以被拦截、忽略或处理。通过按SUSP键序列(Ctrl+z)发送。
基本进程管理信号

3.4、终止进程

  • kill

  • killall <进程名>

  • pkill <关键词> -U <用户名> -t <终端>

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

kill 参数

kill 默认选项为 -15 :发送信号 SIGTERM,表示告诉进程自行停止运行并退出,进程可以忽略

这种方式可能会存在一些问题:进程的子进程可能会无法终止,并继续消耗系统资源

kill -9 :发送信号 SIGKILL,表示进程要立即退出,且不能被捕捉或忽略

kill -3:发送信号 SIGQUIT,表示进程自行退出,并打印进程各个线程的堆栈信息,保存路径为 /proc/${pid}/cwd,文件名为 antBuilderOutput.log

kill -1:发送信号 SIGHUP,表示进程重新加载配置文件,不退出

四、计划任务

一次性计划任务——at

at是Linux中调度未来工作的一种解决方案。at不是一个单独的工具,包括系统后台进程(atd)和一系列的命令(例如at atq等等)与后台进程atd交互。

atd提供26个队列,a到z,排的越后优先级越低。使用at命令排队调度jobs。

语法:at

  • at命令从标准输入中读取要执行的命令。手动输入命令时,按ctrl+D完成输入。

  • 对于大量的命令或者错字敏感的命令,可以通过重定向从脚本中读取,例如at now +5min < myscript,也可以使用-f file 从特定文件中读取。

timespec允许多种时间组合。典型的时间,02:00pm,15:43,或者teatime,后接日期或
未来的天数。

周期性计划任务——crond

crond守护进程会读取多个配置文件(每个用户对应一个配置文件),以及针对系统周期性作业的配置文件。

  • 普通用户可以使用crontab命令管理自己的周期性作业。

  • root用户可以使用参数-u username管理其他用户周期性作业。

语法:crontab -e [-u username]

每一个jobs包涵6个部分,时间和执行的命令内容。前五个是时间,最后一个是执行的命令。

crontab文件中的字段按以下顺序显示:

在这里插入图片描述

  • 分钟
  • 小时
  • 几号
  • 星期几
  • 命令
字段含义例如
*任意时间点
,多个不连续的时间点“1,7”表示1或7
-连续的时间点“1-7”表示1至7
/间隔的时间频率“*/7”表示每隔7
前五字段可以使用字段

基本命令

命令用途
crontab -l列出当前用户的计划作业
crontab -r删除当前用户的所有作业
crontab -e编辑当前用户的作业
crontab filename删除所有作业,并替换为从filename读取的作业。如果没有指定文件,则使用stdin

例:配置 cron 作业,该作业每隔 2 分钟以 natasha 用户身份执行以下命令:强制复制/var/log/目录到/opt/

# 验证crond服务状态
[root@servera ~]# systemctl is-enabled crond.service
enabled
[root@servera ~]# systemctl is-active crond.service
active
# 添加cron作业,内容格式可以参考/etc/crontab
[root@servera ~]# crontab -u natasha -e
*/2 * * * * logger "EX200 in progress"
# 验证文件内容
[root@servera ~]# crontab -u natasha -l
*/2 * * * * \cp -f -r /var/log/ /opt/
g/目录到/opt/
```bash
# 验证crond服务状态
[root@servera ~]# systemctl is-enabled crond.service
enabled
[root@servera ~]# systemctl is-active crond.service
active
# 添加cron作业,内容格式可以参考/etc/crontab
[root@servera ~]# crontab -u natasha -e
*/2 * * * * logger "EX200 in progress"
# 验证文件内容
[root@servera ~]# crontab -u natasha -l
*/2 * * * * \cp -f -r /var/log/ /opt/

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

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

相关文章

【网络安全】对称加密、非对称加密以及密钥分配

目录 1、对称加密 2、非对称加密 3、如何分配对称密钥&#xff1f; 4、如何分配非对称密钥&#xff1f; 1、对称加密 所谓对称加密&#xff0c;就是指加密密钥与解密密钥都使用相同的密钥。如下图所示&#xff0c;通信双方使用的就是对称加密密钥。//代表&#xff1a;DES和…

军工单位安全内网文件导出,怎样做到严密的安全管控?

军工单位是指承担国家下达的军事装备、产品研制、生产计划任务的企、事业单位&#xff0c;主要包括电子工业部、航空工业总公司、航天工业总公司、兵器工业总公司、核工业总公司、船舶工业总公司、中国工程物理研究院及各省国防工业办公室等。 军工单位的特点主要体现在以下几个…

多目标应用:基于非支配排序粒子群优化算法NSPSO求解无人机三维路径规划(MATLAB代码)

一、无人机多目标优化模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节&#xff0c;无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上&#xff0c;计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找…

学习笔记记录ensp中防火墙配置(trust,unstrus,dmz 资源下载可用)

实验目的&#xff0c;通过配置防火墙控制相互之间的访问&#xff0c;拓扑图如下 资源已上传&#xff0c;注意lsw1和ar2的路由表到各个网段的路由表配置&#xff0c;通过防火墙来控制各个区域能否访问成功。 防火墙通过cloud2链接&#xff0c;方便登录网页配置防火墙策略。防火…

js的算法-交换排序(快速排序)

快速排序 基本思想 快速排序的基本思想是基于分治法的&#xff1a;在待排序表L【1...n】中任意取一个元素p 作为枢轴&#xff08;或基准&#xff0c;通常取首元素&#xff09;。通过一趟排序将待排序表划分为独立的两部分L【1...k-1】和L【k1...n】;这样的话&#xff0c;L【1…

数据结构 第六章 树与二叉树(二)

&#x1f680; 【考纲要求】二叉树的定义及其主要特征&#xff1b;二叉树的顺序存储和链式存储 二、二叉树的概念 1&#xff09;什么是二叉树&#xff1f; 对于二叉树来说&#xff0c;它是一个特殊的树形结构&#xff0c;其每个节点都最多有两个孩子&#xff08;即节点的度最…

Redis入门到通关之Redis数据结构-Hash篇

文章目录 ☃️ 概述☃️底层实现☃️源码☃️其他 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后…

ESP-IDF下载与安装完整流程

本文主要看参考官网说明&#xff0c;如下&#xff1a; Windows 平台工具链的标准设置 - ESP32 - — ESP-IDF 编程指南 latest 文档 (espressif.com) 一、概述 ESP-IDF需要安装一些必备工具&#xff0c;才能围绕ESP32构建固件&#xff0c;包括&#xff1a; PythonGit交叉编译…

圈子交友系统话题设置-免费圈子社区论坛交友系统-圈子交友系统功能介绍-APP小程序H5多端源码交付!

1. 圈子的独特创造与精心管理 源码赋予用户创造独特圈子的能力&#xff0c;为志同道合的人们打造一个分享兴趣、交流见解的平台。每个圈子都可以个性化定制主题、标签和规则&#xff0c;以确保圈子具备个性特点和强烈的社群感。作为圈子的创建者&#xff0c;您将享有自由编辑资…

LabVIEW专栏八、类

该章目的是可以开发仪器类。 一、类的概述 一般来说类有三大特性&#xff0c;封装&#xff0c;继承和多态。 在实际项目中&#xff0c;最主要是继承和多态&#xff0c;要搞清楚这两者的概念和在LabVIEW中是怎样应用的。在LabVIEW中&#xff0c;面向对象编程用到的就是LabVIE…

基于高斯混合模型的视频背景提取和人员跟踪算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2013B 3.部分核心程序 .............................................................................. %我们这里…

利用大模型与AI Agent,实现企业数据智能分析

导语&#xff1a;大模型爆火之后&#xff0c;很多企业也用大模型做了相关探索和实践&#xff0c;我们发现大模型解决单点问题时效果更好。但同时会产生安全、幻想等相关问题。今天从传统数据分析的痛点&#xff0c;到大模型智能分析的建设方式&#xff0c;并结合相关实践案例&a…

OpenHarmony实战开发-合理运行后台任务

简介 设备返回主界面、锁屏、应用切换等操作会使应用退至后台。为了降低设备耗电速度、保障用户使用流畅度&#xff0c;系统会对退至后台的应用进行管控&#xff0c;包括进程挂起和进程终止。为了保障后台音乐播放、日历提醒等功能的正常使用&#xff0c;系统提供了受规范约束…

安全AI未来 | C3安全大会 · 2024,数据驱动 AI原生

数字为时代变革注入动力&#xff0c;AI为重塑社会文明带来原力。数智浪潮中&#xff0c;我们见证着时代跃迁的巨变&#xff0c;面临着适变、应变、驭变的挑战。 数字驱动、AI原生。数字的流动不仅承载着信息&#xff0c;更将激活未来的无限价值&#xff1b;AI&#xff0c;不…

unity cinemachine相机 (案例 跟随角色移动)

安装相机包 打开包管理工具 在 unity registry 搜索cinemachine 会在maincamera中生成一个组件cinemachineBrain 只能通过虚拟相机操控 主相机 虚拟相机的参数 案例 1.固定相机效果 位置 在固定的地方 默认的模式 2.相机跟随人物效果 焦距设置 20 跟随设置 把playere…

【Android】 四大组件详解之广播接收器、内容提供器

目录 前言广播机制简介系统广播动态注册实现监听网络变化静态注册实现开机自启动 自定义广播发送标准广播发送有序广播 本地广播 内容提供器简介运行时权限访问其他程序中的数据ContentResolver的基本用法读取系统联系人 创建自己的内容提供器创建内容提供器的步骤 跨程序数据共…

STM32的GPIO输入和输出函数详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. GPIO模式 2. GPIO输出 2.1 RCC 2.2 GPIO 3. 代码示例 3.1 RCC时钟 3.2 GPIO初始化 3.3 GPIO输出函数 3.4 推挽输出和开漏输出 4. GPIO输入 4.1 输入模式 4.2 数据读取函数 5. C语言语法 1…

【书生浦语第二期实战营学习笔记作业(四)】

课程文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.md 作业文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/xtuner/homework.md 书生浦语第二期实战营学习笔记&作业(四) 1.1、微调理论讲解及 XTuner 介绍 两种Fin…

8.4.3 使用3:配置单臂路由实现VLAN间路由

1、实验目的 通过本实验可以掌握&#xff1a; 路由器以太网接口上的子接口配置和调试方法。单臂路由实现 VLAN间路由的配置和调试方法。 2、实验拓扑 实验拓扑如下图所示。 3、实验步骤 &#xff08;1&#xff09;配置交换机S1 S1(config)#vlan 2 S1(config-vlan)#exit S…

Vue基于高德地图API封装一个地图组件

一、参考资料 高德开放平台 | 高德地图API (amap.com) 二、安装及配置 pnpm i vuemap/vue-amap --save man.ts 密钥及安全密钥需要自己到高德地图开放平台控制台获取. import { createApp } from vue import App from ./App.vue import router from ./router i…