当前位置: 首页 > news >正文

Linux的进程

目录

一、进程占用的内存资源

二、进程的系统环境

三、进程一直在切换

四、父进程和子进程

五、进程状态

六、查看进程

1.ps -ef 列出所有进程

2.ps -lax 列出所有进程

3.ps aux列出所有进程

4.树形列出所有进程

七、作业(用来查看管理进程)

1.查看作业、作业的进程

2.后台(守护进程方式)运行作业

3.暂停、恢复作业

4.nohup设置作业无法中断

八、信号(用来控制操作进程)

1.定义

2.来源

3.分类

4.常见的信号

5.如何使用信号,来操作进程?

九、实时监控进程


一、进程占用的内存资源

1.分配的内存、地址、空间;

2.安全属性,如进程的权限信息;

3.进程的状态、子线程和子线程的状态;

二、进程的系统环境

本地局部变量;

调度上下文;

分配系统资源,如网络端口

三、进程一直在切换

1.进程之间一直在切换(以时间片为单位),切换速度很快;

2.调度上下文:这个进程,最近一次切换前记录的状态

四、父进程和子进程

1.最顶级的父进程是systemd,类似于文件系统的"根目录/";

2.父进程通过fork方式复制自己的地址空间来创建子进程;

3.子进程有2个属性,pid是自己的唯一标识,ppid是父进程的pid;

4.父进程创建、回收子进程的过程

fork方式创建子进程后,父进程进入等待状态;

子进程执行;

子进程结束,释放相关的环境、资源,并向父进程发送回收信号。父进程调用wait()、waitpid()回收子进程环境、资源;

僵尸进程:是子进程结束这一步出现问题造成的。子进程其他的环境、资源都释放了除了pid,发送信号后pid就没被父进程回收。结果我们ps查看进程时,显示有这个进程号但没实际进程,就像僵尸一样;


孤儿进程:程序执行一般是子进程先结束然后父进程才结束。孤儿进程是指父进程先结束了,子进程还没结束,然后子进程自动移交给systemd统一管理了,此时的子进程就叫孤儿进程

五、进程状态

runnable:等待状态,即处于等待cpu调用的状态(电脑卡、负载高,就是因为CPU一直不调用,一直处于runnable状态,所以就表现为卡起了)

running:分2种状态,内核级别(要和硬件打交道:进程先调用内核接口,然后内核控制硬件)、用户级别

supend、resume:暂停、恢复

sleeping:等待用户输入、或等待数据返回的状态

exit:退出状态

zombie:僵尸状态

六、查看进程

1.ps -ef 列出所有进程

uid:用户名

pid:进程pid(1是systemd)

ppid:父进程(0是系统内核进程)

stime:进程从什么时候开始运行的

tty:哪个控制台创建的进程。?表示开机时就创建的进程

cmd:[]中括号引起来的是 系统内核进程

2.ps -lax 列出所有进程

pri:优先级

NI:nice值。值越大,优先级越高

VSZ:进程运行时申请的内存大小

RSS:实际运行的内存大小

STAT:进程当前状态(S—睡眠、Ss—进程为父进程且处于睡眠状态、SN—进程优先级很低且处于睡眠状态)/*第一个字符代表状态,后面为状态补充说明,N表示进程优先级很低,s表示进程为父进程,+表示为前台进程而非守护进程、还有很多状态,不知道含义,可以man ps,然后筛选出STAT去看*/

3.ps aux列出所有进程

TIME:进程总共占用cpu执行了多长时间(单位秒,0表示不足1秒,或者从创建后一直在等待没被调用过)

4.树形列出所有进程

ps -ef 、ps -wxf (树形显示父子进程,和他们的进程信息)、pstree (树形结构显示所有族谱进程)

七、作业(用来查看管理进程)

1.查看作业、作业的进程

jobs    -- 列出当前shell终端运行的作业(即程序或命令)

+代表最近一个运行的命令

-代表最近一个的运行的命令的上一个命令

显示当前终端所有作业的进程信息:ps j

2.后台(守护进程方式)运行作业

以后台(守护进程)方式运行作业:

sleep 5000 &      --- 执行休眠5000秒这个作业,并且以守护进程的方式后台运行(命令最后加&符号代表以守护进程方式运行)

后台作业改成前台方式:

fg %【作业编号,最左边哪个括号括起来的数字】    ---比如:fg %3      #编号为3的作业

3.暂停、恢复作业

暂停作业并改为后台(守护进程)方式:ctrl+z

暂停状态改为运行状态:bg %3

4.nohup设置作业无法中断

设置作业进程无法中断:nohup sleep 5000 & --比如我关了当前终端,后台运行的sleep 5000 &属于当前终端的子进程,也应该会中断,但加了nohup就不会中断。如果sleep 5000 &命令有日志打印输出,会保存到当前路径的nohup.out文件里,cat nohup.out就能看到

八、信号(用来控制操作进程)

1.定义

信号指的是传递至进程的软件中断,信号向执行中的程序报告事件

2.来源

错误、或外部事件(如I/O请求、定时器过期),发送信号命令;

键盘输入

3.分类

终止(Term) :意外退出。导致程序立即终止(退出)

核心转储(Core) :正常退出并保存。程序保存内存映像(核心转储),然后终止

停止(Stop) :暂停。导致程序停止执行(暂停),再等待继续(恢复)

4.常见的信号

5.如何使用信号,来操作进程?

键盘输入方式:

Ctrl-z (暂停) ---stop  停止或等待恢复

Ctrl-c (中止) ---term 立即终止并退出

Ctrl-\ (核心转储) ---core  程序保存内存映像,然后终止

发送信号命令:

kill、killall命令可以向进程发送任何信号

(1)过滤筛选,查看进程

pgrep -l -u 【用户名】 #筛选出用户的所有进程

(1)操作单个进程kill

kill-l        ---查看可以发送的信号

kill -【信号编码】 【进程PID】

(3)批量操作进程killall、pkill

killall -u 【用户名】    ----杀死用户的所有进程(进程的uid属性与用户一一对应)

pkill -u 【用户名】

pkill -U 【uid】 #杀死指定uid用户的所有进程

pkill -G 【gid】 #杀死指定gid组包含用户的所有进程

九、实时监控进程

top

1.前面部分打印结果:进程总体情况

16:47:08:当前系统时间

7:40:从开机到现在,系统运行的时长

1 users:当前登录系统的用户数量

load average:1.46,0.74,0.29:系统负载。第一个1.46是1分钟前到现在这段时间的负载平均值、第二个0.74是5分钟前的负载平均值、第三个0.29是15分钟前的负载平均值(“负载平均值/CPU物理核心数>1”表示系统繁忙负载高)

tasks:当前系统一共有多少进程

%CPU0:0.3us,0.3sy,0.0ni,99.3id,0.0wa,:第一个CPU物理核心使用情况。us用户进程占用0.3%、sy系统进程占0.3、ni?????、id表示计算CPU空闲进程的计算结果(数字是空闲百分比,数字越大CPU越空闲,负载越低)、wa是IO-wait的简称表示CPU等待磁盘的时间(数字越大磁盘越繁忙)、

%CPU1:第二个CPU物理核心情况

Mib Mem:内存

Mib Swap:内存交换

2.后面部分打印结果:每个进程详细情况

按cpu占用从大到小排序:按P     ----存在CPU超过100%的情况,是因为可能有多个CPU(比如2个CPU都用完了就是200%)

按内存占用从大到小排序:按M

交互式操作进程:

  • 先按k;
  • 会提示输入进程pid号PID to signaL/kill [default pid = 1357];    ---默认pid是1357
  • 输入要操作进程的pid,回车(按esc取消);
  • 会提示输入指令信号编号Send pid 【pid号】 signal [15/sigterm]; ---默认是15,杀死进程
  • 输入信号编号。比如输入15或者不输入,然后回车,就杀死该进程了(按esc取消)

退出top:按q

相关文章:

Linux的进程

目录 一、进程占用的内存资源 二、进程的系统环境 三、进程一直在切换 四、父进程和子进程 五、进程状态 六、查看进程 1.ps -ef 列出所有进程 2.ps -lax 列出所有进程 3.ps aux列出所有进程 4.树形列出所有进程 七、作业(用来查看管理进程) …...

与其焦虑被 AI 取代或猜测前端是否已死, 不如看看 vertical-align 扎实你的基础!!!

与其焦虑被 AI 取代或猜测前端是否已死, 不如看看 vertical-align 扎实你的基础!!! vertical-align 设置 display 值为 inline, inline-block 和 table-cell 的元素竖直对齐方式. 从 line-height: normal 究竟是多高说起 我们先来看一段代码, 分析一下为什么第二行的行高, 也就…...

路由、交换机、集线器、DNS服务器、广域网/局域网、端口、MTU

前言:网络名词术语解析(自行阅读扫盲),推荐大家去读户根勤的《网络是怎样连接的》 路由(route): 数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。某个路由节点为数据包选择投递方向的选路过程。 路由器工作原理 路…...

在全志V851S开发板上进行屏幕触摸适配

1.修改屏幕驱动 从ft6236 (删掉,不要保留),改为下面的 路径:/home/wells/tina-v853-open/tina-v853-open/device/config/chips/v851s/configs/lizard/board.dts(注意路径,要设置为自己的实际路…...

字符串拷贝时的内存重叠问题

字符串拷贝时的内存重叠问题 1.什么是内存重叠 拷贝的目的地址在源地址的范围内,有重叠。 如在写程序的过程中,我们用到的strcpy这个拷贝函数,在这个函数中我们定义一个目的地址,一个源地址,在拷贝的过程中如果内存重…...

告别PPT手残党!这6款AI神器,让你秒变PPT王者!

如果你是一个PPT手残党,每每制作PPT总是让你焦头烂额,那么你一定需要这篇幽默拉风的推广文案! 我向你保证,这篇文案将帮助你发现6款AI自动生成PPT的神器,让你告别PPT手残党的身份,成为一名PPT王者。 无论…...

JVM配置与优化

参考: JVM内存分区及作用(JDK8) https://blog.csdn.net/BigBug_500/article/details/104734957 java 进程占用系统内存过高分析 https://blog.csdn.net/fxh13579/article/details/104754340 Java之jvm和线程的内存 https://blog.csdn.ne…...

电力系统储能调峰、调频模型研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

C++基础之类、对象一(类的定义,作用域、this指针)

目录 面向对象的编程 类的引入 简介 类的定义 简介 访问限定符 命名规则 封装 简介 类的作用域 类的大小及存储模型 this指针 简介 面向对象的编程 C与C语言不同,C是面向对象的编程,那么什么是面向对象的编程呢? C语言编程,规定…...

javaScript---设计模式-封装与对象

目录 1、封装对象时的设计模式 2、基本结构与应用示例 2.1 工厂模式 2.2 建造者模式 2.3 单例模式 封装的目的:①定义变量不会污染外部;②能作为一个模块调用;③遵循开闭原则。 好的封装(不可见、留接口):①…...

【消息中间件】kafka高性能设计之内存池

文章目录 前言实现创建内存池分配内存释放内存 总结 前言 Kafka的内存池是一个用于管理内存分配的缓存区域。它通过在内存上保留一块固定大小的内存池,用于分配消息缓存、批处理缓存等对象,以减少频繁调用内存分配函数的开销。 Kafka内存池的实现利用了…...

创建型模式——单例(singleton)

1. 模式说明 单例模式保证类只有一个实例;创建一个对象,当你创建第二个对象的时候,此时你获取到的是已经创建过的对象,而不是一个新的对象; 1.1 使用场景 共享资源的访问权限;任务的管理类;数…...

算法:迷宫问题

描述 定义一个二维数组 N*M ,如 5 5 数组下所示: int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或…...

聊聊并发编程的12种业务场景

前言 并发编程是一项非常重要的技术,无论在面试,还是工作中出现的频率非常高。 并发编程说白了就是多线程编程,但多线程一定比单线程效率更高? 答:不一定,要看具体业务场景。 毕竟如果使用了多线程&…...

MySQL执行顺序

MySQL执行顺序 MySQL语句的执行顺序也是在面试过程中经常问到的问题,并且熟悉执行顺序也有助于SQL语句的编写。 SELECT FROM JOIN ON WHERE GROUP BY HAVING ORDER BY LIMIT执行顺序如下: FROM ON JOIN WHERE GROUP BY # (开始使用别名) SUM # SUM等…...

引领真无线耳机未来趋势,NANK南卡OE骨传导真无线耳机惊艳亮相

传统的蓝牙耳机存在很多问题,例如续航时间短、长期佩戴耳朵会不舒服,甚至影响听力等等。为了解决这些问题,在骨传导领域深耕十多年的南卡品牌推出了这款真无线骨传导耳机——NANK南卡 OE。 NANK南卡OE即将正式上线,这一消息一经宣…...

5款写作神器,帮助你写出5w+爆款文案,好用到哭

我不允许还有文案小白、新手博主不知道这5款写作利器! 每次一写文案就头秃的新媒体工作者,赶紧看过来吧!这5款好用到爆的写作神器,喝一杯咖啡的时间就能完成写作。 我和同事都是用它们,出了很多的爆款,现…...

相交链表问题

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后&…...

[ubuntu] ax200网卡虚接,导致系统根目录占满而无法进入系统的奇葩问题

20230508,我像往常一样,打开电脑发现根目录满了,报警了,所以按照网上的教程,清理了一下根目录的文件,没想到背后是网卡问题… 文章目录 1.进入终端模式2.查看占用情况3.清理系统log文件3.1 清理/var/log/syslog3.2 清…...

本地字体库的引入方法

本地字体库是指在计算机系统中存储的一组字体文件,通常包含多种字体格式,如TTF、OTF、WOFF等。引入本地字体库可以让用户在使用计算机时可以选择不同的字体,从而提高用户的使用体验。 本地字体库的引入方式有多种,其中比较常用的是…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...