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

news2024/11/26 13:49:11

目录

一、程序和进程

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.coloradmin.cn/o/1625892.html

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

相关文章

电商ERP是什么,电商ERP有什么用?||电商API接口

目录 一. 电商ERP是什么? 二. 电商ERP的常见功能 三. 小结 电商ERP接口接入 01 一. 电商ERP是什么? 随着电商经济的快速发展&#xff0c;电商企业面临着机遇和挑战。企业都希望快速拓展市场&#xff0c;通过多个渠道增加销售额。电商ERP系统是一种先进的应用系统&#…

EaseUS RecExperts for Mac/Win:你的专属屏幕录像专家

在信息爆炸的时代&#xff0c;屏幕录像软件已经成为我们工作和生活中的得力助手。无论是教学演示、产品介绍&#xff0c;还是游戏录制、会议记录&#xff0c;一款功能强大的屏幕录像软件都能轻松应对。而EaseUS RecExperts&#xff0c;正是这样一款值得你信赖的屏幕录像专家。 …

网络安全之弱口令与命令爆破(上篇)(技术进阶)

目录 一&#xff0c;什么是弱口令&#xff1f; 二&#xff0c;为什么会产生弱口令呢&#xff1f; 三&#xff0c;字典的生成 四&#xff0c;使用Burpsuite工具弱口令爆破 总结 一&#xff0c;什么是弱口令&#xff1f; 弱口令就是容易被人们所能猜到的密码呗&#xff0c;…

springboot+thymeleaf实现一个简单的监听在线人数功能

功能步骤&#xff1a; 1. 当用户访问登录页面时&#xff0c;Logincontroller的showLoginForm方法被调用&#xff0c;返回登录页面的视图名字。 2. 用户提交表单&#xff0c;调用LoginController的login方法。 3.login方法 4.登录验证通过&#xff0c;home方法会被调用&#xf…

JavaEE >> Spring Boot(1)

Spring Boot 前面已经介绍了 Spring &#xff0c;是为了简化 Java 程序开发的&#xff0c;而在前面创建的过程中就会发现其实 Spring 还是有点复杂&#xff0c;此时 Spring Boot 就诞生了&#xff0c; Spring Boot 是为了简化 Spring 程序开发的。 Spring Boot 即 Spring 脚手…

transformer 最简单学习3, 训练文本数据输入的形式

1、输入数据中&#xff0c;源数据和目标数据的定义 def get_batch(source,i):用于获取每个批数据合理大小的源数据和目标数据参数source 是通过batchfy 得到的划分batch个 ,的所有数据&#xff0c;并且转置列表示i第几个batchbptt 15 #超参数&#xff0c;一次输入多少个ba…

【opencv 加速推理】如何安装 支持cuda的opencv 包 用于截帧加速

要在支持CUDA的系统上安装OpenCV&#xff0c;您可以使用pip来安装支持CUDA的OpenCV版本。OpenCV支持CUDA加速&#xff0c;但需要安装额外的库&#xff0c;如cuDNN和NVIDIA CUDA Toolkit。以下是一般步骤&#xff1a; 安装NVIDIA CUDA Toolkit: 首先&#xff0c;您需要安装NVID…

Golang:文件读写操作WriteFile、ReadFile和0644权限

方法签名 // 文件打开、写入、关闭 func OpenFile(name string, flag int, perm FileMode) (*File, error)func (f *File) WriteString(s string) (n int, err error) func (f *File) Write(b []byte) (n int, err error)func (f *File) Close() error// 写入文件 func WriteFi…

机器视觉系统-工业光源什么是低角度打光方式

光路描述&#xff1a;光线与水平面角度 <45称为低角度光。 效果分析&#xff1a;低角度照射&#xff0c;被侧物表面平整部分的反射光无法进入入镜头&#xff0c;图像效果表现为灰度值较低&#xff1b;不平整部分的反射光进入镜头&#xff0c;图像效果表现为灰度值较高。 主要…

充电器进阶,原边恒流,单片机控制小电流(预充电)的方案

前言 很多充电器&#xff0c;为了能控制电流输出&#xff0c;也就是充电时需要有小电流、大电流的情况&#xff0c;都会用副边及单片机进行控制&#xff0c;但因为是副边控制&#xff0c;需要一个比较器、一个二极管、若干电阻、若干电容&#xff0c;整体BOM成本可能多了三毛钱…

virtio-wayland

CrosVM是Chrome操作系统中&#xff0c;用于创建虚拟机的应用。是一个Rust编写的轻量级的虚拟机。借助于CrosVM 用户可以很容易的在ChromeOS中运行Linux、Android以及Windows应用程序 概述 目前crosvm实现了virtio wayland协议&#xff0c;实现了对linux虚拟机wayland协议支持 …

债务泥潭、童婚和被摘除的子宫:糖的残酷真相

今天看到《纽约时报》的一篇深度报道&#xff0c;对于女性来说&#xff0c;看完不寒而栗&#xff0c;事情发生在印度。 在那种环境下&#xff0c;女性是多么的无助&#xff0c;无望&#xff0c;迷茫&#xff0c;只能同那个地区的成千上万女性一样&#xff0c;走着同样的命运。 …

python与pycharm如何设置文件夹为源代码根目录

相信大家遇到过下面这种情况 当我们在当前项目下引入了其它项目的代码&#xff0c;这是其它项目的包的导入路径是不用于当前项目的&#xff0c;这样导致项目无法正常起来&#xff0c;但是我们又不可能一个个文件去处理&#xff0c;这时可以用下面的方式解决 pycharm直接设置 …

区块链技术与应用学习笔记(5-7节)——北大肖臻课程

​ 目录 ​BTC实现 基于交易的账本模式&#xff1a; UTXO集合&#xff1a; 交易费用&#xff1a; BTC网络 1.应用层&#xff1a; 2.网络层&#xff1a; 3传播层&#xff1a; 什么是鲁棒&#xff1f; BTC挖矿&#xff1a; 出块奖励&#xff1a; 挖矿难度调整&#…

Typescript 练习

1. 类型谓词 格式&#xff1a;类型谓词采用parameterName is Type格式&#xff0c;其中parameterName必须是当前函数的参数 interface Iuser {type: username: stringage: numberoccupation: string }interface Iadmin {type: adminname: stringage: numberrole: string }expor…

安卓备份:守护你的数据安全与记忆珍藏

手机中的数据也承载着我们的记忆和情感&#xff0c;成为我们生活中不可或缺的一部分。为了守护这些宝贵的数据&#xff0c;备份成为了我们必须要面对的问题。本文将为你详细介绍安卓备份的方法&#xff0c;以及备份的重要性&#xff0c;帮助你更好地守护自己的数据安全与记忆珍…

Python 中的递归排列

在 Python 中使用递归计算排列,适合绝对初学者 介绍 有些人发现很难理解递归算法。 这个技巧向绝对初学者展示了如何使用递归查找排列。Python 背景 这个技巧的想法来自一个问答问题:可怜的 OP 花了三天时间“翻头”,试图弄清楚一小段代码如何能够生成输入列表项的所有排列。…

从零开始利用MATLAB进行FPGA设计(五)详解双口RAM

创作于谱仪算法设计过程中的数字能谱生成模块设计。 往期回顾&#xff1a; 从零开始利用MATLAB进行FPGA设计&#xff08;四&#xff09;生成优化HDL代码 从零开始利用MATLAB进行FPGA设计&#xff08;三&#xff09;将Simulink模型转化为定点数据类型 目录 1.关于双口RAM …

Python | Leetcode Python题解之第46题全排列

题目&#xff1a; 题解&#xff1a; class Solution:def permute(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""def backtrack(first 0):# 所有数都填完了if first n: res.append(nums[:])for i in range(first, n):# 动…

【Leetcode每日一题】 穷举vs暴搜vs深搜vs回溯vs剪枝_全排列 - 子集(难度⭐⭐)(65)

1. 题目解析 题目链接&#xff1a;78. 子集 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 算法思路详解&#xff1a; 为了生成数组 nums 的所有子集&#xff0c;我们需要对数组中的每个元素进行“选择”或“不选择…