Linux程序、进程和计划任务
目录
一.程序和进程
1.程序的概念
2.进程的概念
3.线程的概念
4.单线程与多线程
5.进程的状态
二.查看进程信息相关命令:
1.ps:查看静态进程信息状态
2.top:查看动态进程排名信息
3.pgrep:查看指定进程
4.pstree:以树形结构列出进程信息
6.iostat:显示所有设备负载情况
三.查看系统性能
四.进程管理
1.手动启动
2.进程的前后台调度
3.终止程序的运行
(1)ctrl+c
(2)kill
(3)pkill
五.计划任务管理
1.at:设置一次性计划任务
2.crontab:周期性计划任务
一.程序和进程
1.程序的概念
在硬盘上执行特定程序的一串代码
2.进程的概念
程序启动后,系统会赋予一个pid,这个含有pid而且在运行中的程序叫做进程。
3.线程的概念
线程的出现是为了解决切换进程之间出现的硬件消耗
(1)减少硬件资源的消耗
(2)一个线程至少有一个进程
(3)相同资源的存储
4.单线程与多线程
grep -i threads /proc/pid号/status
或prtstat pid号 | grep -i threads
5.进程的状态
运行态:running
就绪态:ready
睡眠态,可中断:interruptable,不可中断:uninterruptable
停止态:stopped,暂停于内存,但不会被调度,除非手动启动
僵死态:zombie,僵尸态,结束进程,父进程结束前,子进程不关闭,杀死父进程可以关闭僵死态的子进程, 解决方法: 重启或将父进程唤起
二.查看进程信息相关命令:
1.ps:查看静态进程信息状态
格式:
ps aux #基本格式
ps aux | wc -l #结合管道符号查询具体的数量(需要-1)
| a | 所有终端 |
| u | 以用户格式 |
| x | 所有进程 |
| -e | 显示系统内的所有进程信息 |
| -l | 使用长(Long)格式显示进程信息 |
| -f | 使用完整的(Full)格式显示进程信 |
| k|--sort | 对属性排序,属性前加 - 表示倒序 |
| o | 选项显示定制的信息 |

表头 含义
USER 该进程是由哪个用户产生的。
PID 进程的 ID。
%CPU 该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。
%MEM 该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。
VSZ 该进程占用虚拟内存的大小,单位为 KB。
RSS 该进程占用实际物理内存的大小,单位为 KB。
TTY 该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。?代表和终端无关,系统进程
STAT 进程状态。常见的状态有以下几种: -D:不可被唤醒的睡眠状态,通常用于 I/O 情况。 -R:该进程正在运行。 -S:该进程处于睡眠状态,可被唤醒。 -T:停止状态,可能是在后台暂停或进程处于除错状态。 -W:内存交互状态(从 2.6 内核开始无效)。 -X:死掉的进程(应该不会出现)。 -Z:僵尸进程。进程已经中止,但是还是占用硬件资源。 -<:高优先级(以下状态在 BSD 格式中出现)。 -N:低优先级。 -L:被锁入内存。 -s:包含子进程。 -l:多线程(小写 L)。 -+:位于后台。
START 该进程的启动时间。
TIME 该进程占用 CPU 的运算时间,注意不是系统时间。
COMMAND 产生此进程的命令名。
2.top:查看动态进程排名信息
-d 秒数 指定 top 命令每隔几秒更新。默认是 3 秒
-b 使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中
-n 次数 指定 top 命令执行的次数。一般和"-"选项合用
-p 进程PID 仅查看指定 ID 的进程
-s 使 top 命令在安全模式中运行,避免在交互模式中出现错误
-u 用户名 只监听某个用户的进程
第一行:任务列表信息
内 容 说 明 12:26:46 系统当前时间 up 1 day, 13:32 系统的运行时间.本机己经运行 1 天 13 小时 32 分钟 2 users 当前登录了两个用户 load average: 0.00,0.00,0.00 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)
第二行为进程信息
内 容 说 明 Tasks: 95 total 系统中的进程总数 1 running 正在运行的进程数 94 sleeping 睡眠的进程数 0 stopped 正在停止的进程数 0 zombie 僵尸进程数。如果不是 0,则需要手工检查僵尸进程
第三行为 CPU 信息
内 容 说 明 Cpu(s): 0.1 %us 用户模式占用的 CPU 百分比 个人用户开启的进程占用的 cpu 率 0.1%sy 系统模式占用的 CPU 百分比 0.0%ni 改变过优先级的用户进程占用的 CPU 百分比 99.7%id 空闲 CPU 占用的 CPU 百分比 0.1%wa 等待输入/输出的进程占用的 CPU 百分比 1 0.0%hi 硬中断请求服务占用的 CPU 百分比 0.1%si 软中断请求服务占用的 CPU 百分比 0.0%st st(steal time)意为虚拟程序占用 cpu 时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比
第四行为物理内存信息
内 容 说 明 Mem: 625344k total 物理内存的总量,单位为KB 571504k used 己经使用的物理内存数量 53840k&ee 空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存 65800k buffers 作为缓冲的内存数量
第五行为交换分区(swap)信息
内 容 说 明 Swap: 524280k total 交换分区(虚拟内存)的总大小 Ok used 已经使用的交换分区的大小 524280k free 空闲交换分区的大小 409280k cached 作为缓存的交换分区的大小
3.pgrep:查看指定进程
| -U | 指定用户 |
| -l | 显示进程名 |
| -a | 显示完整格式的进程名 |
| -P pid | 显示指定进程的子进程 |
| -t | 指定终端 |
4.pstree:以树形结构列出进程信息
| -a | 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等 |
| -p | 显示PID |
| -T- | 不显示线程thread,默认显示线程 |
| -u | 显示用户切换 |
| -H pid | 高亮显示指定进程及其前辈进程 |
6.iostat:显示所有设备负载情况
格式:
iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
| -c | 显示CPU使用情况 |
| -d | 显示磁盘使用情况 |
| -N | 显示磁盘阵列(LVM) 信息 |
| -n | 显示NFS 使用情况 |
| -k | 以 KB 为单位显示 |
| -m | 以 M 为单位显示 |
| -t | 报告每秒向终端读取和写入的字符数和CPU的信息 |
| -V | 显示版本信息 |
| -x | 显示详细信息 |
| -p | 显示磁盘和分区的情况 |
三.查看系统性能
| CPU | top w |
| 内存 | top free |
| 硬盘剩余 | df |
| 硬盘读写 | iostat |
| 网络带宽 | ifop |
四.进程管理
1.手动启动
前台启动:通过终端启动后一直占据终端,用户输入命令,直接执行的程序
后台启动:可通过终端启动,但启动后即转入后台运行(释放终端),在命令行尾加入“&”符号
2.进程的前后台调度
(1)ctrl+z
将当前进程挂起,即调入后台并停止执行
(2)jobs
[ -l ] :显示PID号
查看处于后台的任务列表
(3)fg命令
将后台进程恢复到前台运行,可指定任务序号
3.终止程序的运行
(1)ctrl+c
中断正在执行的命令
(2)kill
- kill用于终止指定PID号的进程
- klll用于终止指定名称相关的所有进程
- -9选项用于强制终止
格式:
kill [信号] PID
0 EXIT 程序退出时收到该信息。
1 HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2 INT 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3 QUIT 退出。
9 KILL 杀死进程,即强制结束进程。
11 SEGV 段错误。
15 TERM 正常结束进程,是 kill 命令的默认信号。kill all #杀死全部进程
(3)pkill
根据特定条件终止相应的进程(不建议使用)
- -U:根据进程所属的用户名终止相应进程;
- -t:根据进程所在的终端终止相应进程。
五.计划任务管理
1.at:设置一次性计划任务
at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行
atq #查看未执行的一次性计划任务
atrm 1 #删除第一条任务
2.crontab:周期性计划任务
格式:
crontab [选项] [file]
-u user 用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行。
-e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i 在删除用户的 crontab 文件时,给确认提示。
格式:
* * * * *
| 第一个* | 哪一分钟 | 0-53 |
| 第二个* | 哪一小时 | 0-23 |
| 第三个* | 哪一天 | 1-31 |
| 第四个* | 哪一月 | 1-12 |
| 第五个* | 星期几 | 0-7 07代表星期天 |
相关文章:
Linux程序、进程和计划任务
目录 一.程序和进程 1.程序的概念 2.进程的概念 3.线程的概念 4.单线程与多线程 5.进程的状态 二.查看进程信息相关命令: 1.ps:查看静态进程信息状态 2.top:查看动态进程排名信息 3.pgrep:查看指定进程 4.pstree&#…...
【MySQL】索引基础
文章目录 1. 索引介绍2. 创建索引 create index…on…2.1 explain2.2 创建索引create index … on…2.3 删除索引 drop index … on 表名 3. 查看索引 show indexes in …4. 前缀索引4.1 确定最佳前缀长度:索引的选择性 5. 全文索引5.1 创建全文索引 create fulltex…...
精确管理Python项目依赖:自动生成requirements.txt的智能方法
在Python中,可以使用几种方法来自动生成requirements.txt文件。这个文件通常用于列出项目所需的所有依赖包及其版本,使其他人或系统可以轻松地重现相同的环境。下面是几种常见的方法: 使用pip freeze: 这是最常见的方法。pip free…...
JavaWeb基础(1)- Html与JavaScript(JavaScript基础语法、变量、数据类型、运算符、函数、对象、事件监听、正则表达式)
JavaWeb基础(1)- Html与JavaScript(JavaScript基础语法、变量、数据类型、运算符、函数、对象、事件监听、正则表达式) 文章目录 JavaWeb基础(1)- Html与JavaScript(JavaScript基础语法、变量、数据类型、运算符、函数、对象、事件…...
java SSM体育器材租借管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
一、源码特点 java SSM体育器材租借管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要…...
西电期末1030.函数的最大值
一.题目 二.分析与思路 函数打擂台,注意数据类型和保留精度 三.代码实现 #include<bits/stdc.h>//万能头 double f(double x,double a){return a*x*x-x*x*x; }//f(x) int main() {double a;scanf("%lf",&a);double max-1000001;//打擂台for(…...
在Docker中安装Tomact
目录 前言: 一.安装Tomact 查找指定的tomact版本 下载tomact9.0 查看该镜像是否安装成功 安装成功之后就开始运行镜像了 ps(用于列出正在运行的Docker容器) 编辑 测试(虚拟机ip:8080) 编辑 解决措施 编辑 完成以上步骤&…...
【书生大模型00--开源体系介绍】
书生大模型开源体系介绍 0 通用人工智能1 InternLM性能及模型2 从模型到应用 大模型成为目前很热的关键词,最热门的研究方向,热门的应用;ChatGPT的横空出世所引爆,快速被人们上手应用到各领域; 0 通用人工智能 相信使…...
基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理
文章目录 一、内容简介二、前言2.1 Transformer 模型标志着AI 新时代的开始2.2 Transformer 架构具有革命性和颠覆性2.3 Google BERT 和OpenAI GPT-3 等Transformer 模型将AI 提升到另一个层次2.4 本书将带给你的“芝士”2.5 本书面向的读者 三、本书内容简介3.1 第一章3.2 第二…...
一款开源的MES系统
随着工业4.0的快速发展,制造执行系统(MES)成为了智能制造的核心。今天,将为大家推荐一款开源的MES系统——iMES工厂管家。 什么是iMES工厂管家 iMES工厂管家是一款专为中小型制造企业打造的开源MES系统。它具备高度的可定制性和灵…...
https配置证书
HTTPS 基本原理 https 介绍 HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 国内外的大型互联网…...
图神经网络|10.4 GCN 变换原理的解读
由9.3-邻接矩阵的变换可知,理解矩阵通过两个度矩阵的逆进行归一化。 微观上看, a i j a_{ij} aij这个元素将会乘上 1 d e g ( v i ) d e g ( v j ) \frac{1}{\sqrt{deg_(v_i)\sqrt{deg(v_j)}}} deg(vi)deg(vj) 1 其现实意义如下—— 比如…...
计算机组成原理 I/O方式
I/O 方式 I/O方式分类: 程序查询方式。由 CPU通过程序不断查询 /O 设备是否已做好准备,从而控制0 设备与主机交换信息程序中断方式。只在 I/0 设备准备就绪并向 CPU发出中断请求时才予以响应。DMA方式。主存和 I/O 设备之间有一条直接数据通路,当主存和…...
VMWare网络配置
1、通用配置 选择自动,相对与选择指定网卡,能解决网卡更换导致网络不可用的问题。 2、每个虚拟机配置...
opencv期末练习题(3)附带解析
创建黑色画板,并支持两种画图功能 import mathimport cv2 import numpy as np """ 1. 创建一个黑色画板 2. 输入q退出 3. 输入m切换画图模式两种模式,画矩形和画圆形。用户按住鼠标左键到一个位置然后释放就可以画出对应的图像 "&qu…...
51单片机之LED灯
51单片机之LED灯 🌴前言:🏮点亮LED灯的原理💘点亮你的第一个LED灯💘点亮你的八个LED灯 📌让LED灯闪烁的原理🎽 LED灯的闪烁🏓错误示范1🏓正确的LED闪烁代码应该是这样&am…...
操作系统内存碎片
大家好,我叫徐锦桐,个人博客地址为www.xujintong.com,github地址为https://github.com/jintongxu。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。 一、前言 内存碎片是指无法被利用的内…...
三菱plc学习入门(二,三菱plc指令,触点比较,计数器,交替,四则运算,转换数据类型)
今天,进行总结对plc的学习,下面是对plc基础的学习,希望对读者有帮助,欢迎点赞,评论,收藏!!! 目录 触点比较 当数据太大了的时候(LDD32位) CMP比…...
Spring学习之——代理模式
Proxy代理模式 介绍 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 2. 组成 抽象角色:通过接口或抽象类声明真实角色实现的…...
【Linux】之搭建 PostgreSQL 环境
前言 在 Linux 系统下安装 PostgreSQL,可以选择快捷方便的 Docker 安装,但正常的服务器都是直接原生安装的,所以,这里我将讲解如何正常安装 PostgreSQL 以及安装之后的一些配置。如果想了解 Docker 安装的话,可以查看我…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
