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

linux简述进程

目录

进程

一个正在运行的程序,一个程序运行至少要启动一个进程,主进程 子进程

一个进程正常运行,至少要启动一个线程,主线程 子线程

进程的生命周期:

进程状态产生的原因:

查看当前系统的进程

ps aux (静态):

ps -ef (静态):

查看单个PID

pidof :查找服务进程的pid号码

pgrep:检索进程pid号码

查看进程端口

查看正在监听的端口

动态查看进程

top:动态查看进程及内容使用情况

进程优先级nice

进程控制

kill:杀死指定的进程

pkill:进程名杀死指定进程

作业控制

jobs:


进程

计算机四大存储资源:磁盘资源、内存资源、cpu资源、网络资源

一个正在运行的程序,一个程序运行至少要启动一个进程,主进程 子进程
速度:启动慢,结束慢
资源隔离
资源不共享
一个进程正常运行,至少要启动一个线程,主线程 子线程
速度:启动快,结束快
资源共享
线程的损坏会影响进程
进程的生命周期:
父进程复制自己的地址空间(fork)创建一个新的子进程结构
每个新进程分配一个,唯一的进程id(pid),满足跟踪安全之需
任何进程都可以创建子进程
所有进程都是第一个系统进程的后代
进程状态产生的原因:
在多任务处理操作系统中,每个cpu(或核心)在一个时间节点上只能处理一个进程
在程序运行时,他对cpu时间和资源分配的要求会不断变化的,从而为进程分配一个状态
它随着环境的要求而改变

查看当前系统的进程

ps aux (静态):
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
​
需要提前安装:yum -y install psmisc
pstree:展示进程之间的父子关系
​
ps aux | grep 进程名      //查看指定进程的pid
进程字段解释,命令:ps aux 
​
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
============================================================================
USER:      //运行进程的用户
PID:       //进程ID
%CPU:      //CPU占用率
%MEM:      //内存占用率
VSZ:       //进程占用的虚拟内存大小。
RSS:       //占用的物理内存大小
TTY:       //进行运行的终端
STAT:      //进程状态  
START:     //进程的启动时间
TIME:      //进程占用CPU的总时间
COMMAND:   //进程文件,进程名
​
进程状态:
?:   表示没有占用终端
R:   运行
S:   可中断睡眠 Sleep
D:   不可中断睡眠
T:   停止的进程 
Z:   僵尸进程
X:   死掉的进程
Sl:  以线程的方式运行
Ss:  s进程的领导者,父进程
R+:  +表示是前台的进程组
S<:  <优先级较高的进程  
SN:  N优先级较低的进程
查看tty的方法:
tty      //进行运行的终端
? 表示这个进程开启的时候没有占用终端
ps -ef (静态):
-e 显示所有进程
-l 长格式显示
-f 完整格式
进程字段解释,命令:ps -ef
​
UID         PID   PPID  C STIME TTY          TIME CMD
=============================================================
UID       //用户ID
PID       //进程ID
PPID      //父进程ID
C         //CPU占用率
STIME     //开始时间
TTY       //开始此进程的终端设备
TIME      //此进程运行的总时间
CMD       //启动命令名
查看单个PID
pidof :查找服务进程的pid号码
pidof 进程名
pgrep:检索进程pid号码
pgrep 进程名
​
-d 设置号码之间的间隔符
-P 匹配父进程ID
查看进程端口
yum -y install lsof    //下载lsof
lsof -i:端口号  //端口号,查看带端口的进程
​
注意:端口号只有整数,范围是从0 到65535
进程字段解释,命令:lsof -i:端口号
​
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
=============================================================
COMMAND    进程文件,进程名
PID        进程ID
USER       运行进程的用户
FD         文件描述符,应用程序通过文件描述符识别该文件。
DEVICE     指定磁盘的名称
SIZE/OFF   文件的大小
查看正在监听的端口
查网络进程和正在监听的端口:ss -nplt  |  netstat -lntp
​
-a  显示全部的进程
-u  显示udp
-n  以数字的新式显示协议名称
-t   tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口
进程字段解释,命令:netstat -lntp
​
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
==================================================================================
recv-Q:网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。
send-Q:网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区.如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
Foreign Address:与本机端口通信的外部请求
PID/Program name:pid和进程名
动态查看进程
top:动态查看进程及内容使用情况
top         //动态显示信息,三秒刷新一次
​
load average: 0.00, 0.01, 0.05     //平均负载:一分钟,五分钟,十五分钟
​
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出   
z 彩色显示
W 保存
​
标题参数解释:
第一行:程序名-系统时间 运行时间 登录用户数 CPU负载:1 5 15分钟
第二行:总线程数 运行数 睡眠数  停止数   僵死数
第三行: CPU使用占比 us用户 sy系统 ni优先级 id空闲 wa等待 hi硬件  si软件  st虚拟机
第四行:物理内存 total总共 free空闲 user使用 cache缓存硬盘内容 
第五行:换分区 total总共 free空闲 user使用  cache缓存硬盘内容 
------------------------------------                   
PID 用户  内存  共享内存 虚拟内存 状态 CPU占用 内存占用  运行时间  命令
进程优先级nice
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
​
修改进程优先级
renice -n 需要修改的优先级数  进程名

进程控制

kill:杀死指定的进程
kill 进程号    杀死指定进程,高级别进程(终端)不能杀死
​
kill -9 进程号 强制杀死指定进程(往往用来杀死任务的干扰进程)
kill常用参数:
​
SIGTERM(信号15):这是kill命令的默认信号。它会请求进程终止,但是进程可以选择忽略这个信号。这是一个友好的终止信号,因为它允许进程有机会清理并优雅地关闭。
SIGKILL(信号9):这个信号会立即终止进程,进程无法忽略。这是一个强制终止信号,通常在SIGTERM无效时使用。
SIGINT(信号2):这个信号通常由用户通过按Ctrl+C发送,用于中断进程。
SIGSTOP(信号17,19,23):这个信号会立即停止进程的执行。进程无法忽略这个信号。
SIGCONT(信号18,20,24):这个信号会使被SIGSTOP停止的进程继续执行。
SIGHUP(信号1):这个信号通常表示终端已断开连接。许多守护进程会在接收到这个信号后重新读取配置文件。
SIGALRM(信号14):这个信号通常用于实现定时器或者超时功能。
pkill:进程名杀死指定进程
pkill 进程名    //根据进程名杀死进程

作业控制

jobs:
作业控制指的是控制正在运行的进程的行为。如:用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。
命令后+&         //&:让命令或者程序后台运行
​
命令开始执行后    //ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
​
jobs           //查看后台的工作号
​
bg %工作号      //让暂停的程序在后台运行,%是用来修饰job number:工作号
​
fg %工作号      //将后台的程序调到前台
​
kill -9 %工作号  //通过kill杀死进程

相关文章:

linux简述进程

目录 进程 一个正在运行的程序&#xff0c;一个程序运行至少要启动一个进程&#xff0c;主进程 子进程 一个进程正常运行&#xff0c;至少要启动一个线程&#xff0c;主线程 子线程 进程的生命周期&#xff1a; 进程状态产生的原因&#xff1a; 查看当前系统的进程 ps au…...

由于设置了全局 QWidget 背景导致QT QCalendarWidget 表态背景异常

解决&#xff1a; 单独设置QCalendarWidget 的qss : 对象是查看源码所得 QWidget#qt_calendar_navigationbar{ ...... } QToolButton#qt_calendar_prevmonth, #qt_calendar_nextmonth, #qt_calendar_monthbutton, #qt_calendar_yearbutt…...

数据库的重要你了解多少?如何保障数据库的安全?

随着信息技术的快速发展&#xff0c;数据库已经成为企业、组织以及个人日常生活中不可或缺的一部分。然而&#xff0c;随着数据库的广泛应用&#xff0c;其安全性问题也日益凸显。数据库的安全性主要包括数据的完整性、保密性和可用性。本文将探讨数据库安全性的重要性、以及如…...

距离“全自动”漏洞挖掘又近了一步!腾讯安全大数据实验室论文入选ACM CCS 2023

计算机领域国际权威学术顶会ACM CCS 2023于11月26日在丹麦哥本哈根开幕。腾讯安全大数据实验室团队论文《Hopper: Interpretative Fuzzing for Libraries》被大会收录&#xff0c;昨天&#xff0c;实验室研究员谢雨轩受邀出席大会进行主题分享。 该论文提出了解释性模糊测试&a…...

docker搭建rabbit集群

1.去rabbitMQ官网拉去images 我当前使用的是最新版本的镜像&#xff1a;rabbitmq:3.12-management 2.创建一个集群专用网络 docker的容器相互隔离是不可通信的&#xff0c;我们自行创建一个网络后&#xff0c;创建容器时 给他们放在一起&#xff0c;就可以通信了。 docker netw…...

西南科技大学C++程序设计实验一(C++基础知识)

目录 一、实验目的 二、实验任务 三、预习内容(复习书中前3章内容,说明C++相对于C的扩展有哪些?) 四、问题思考与讨论 一、实验目的 1.熟悉编程环境 2.掌握程序调试方法。 3.熟悉枚举类型、结构体类型等自定义数据类型的使用 4.熟悉函数的定义、说明与使用 5.熟悉引用…...

Rust内存布局

题图忘了来自哪里.. 整型,浮点型,struct,vec!,enum 本文是对 Rust内存布局 的学习与记录 struct A { a: i64, b: u64,}struct B { a: i32, b: u64,}struct C { a: i64, b: u64, c: i32,}struct D { a: i32, b: u64, c: i32, d: u64,}fn main(…...

android 12 添加菜单

1.创建一级菜单 packages\apps\Settings\res\xml\top_level_settings.xml <com.android.settings.widget.HomepagePreferenceandroid:fragment"com.android.settings.DeviceStatusSettings"android:icon"drawable/ic_settings_display_white"android:…...

Map 的 5 种遍历方式

Map 的 5 种遍历方式 强烈推荐 for-each entrySet()遍历 和 lambda 表达式遍历 &#xff0c;简洁又好用&#xff01;&#xff01;&#xff01; package com.maptest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;pub…...

Linux的基本指令 ( 一 )

目录 前言 Linux基本指令 快速认识五个指令 ls指令 补充内容 pwd指令 补充内容 cd指令 补充内容 重新认识指令 指令的本质 which指令 alias指令 最后 一个文件的三种时间 tree指令及安装 tree指令 前言 关于Linux操作系统的桌面&#xff0c;在学校教学中我们…...

【深度学习】学习率及多种选择策略

学习率是最影响性能的超参数之一&#xff0c;如果我们只能调整一个超参数&#xff0c;那么最好的选择就是它。相比于其它超参数学习率以一种更加复杂的方式控制着模型的有效容量&#xff0c;当学习率最优时&#xff0c;模型的有效容量最大。本文从手动选择学习率到使用预热机制…...

具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉

随着人工智能的普及和万物互联&#xff0c;vr虚拟技术备受关注&#xff0c;为了更加真实的虚拟现实交互体验&#xff0c;动捕数据手套的使用逐渐普及&#xff0c;vr手套可以实时采集各手指关节运动数据&#xff0c;使用动捕数据手套可以在虚拟现实的场景中实现对真实手部运动的…...

Mongodb使用killCursors停止运行的cursor

cursor指向查询结果的游标&#xff0c;通过游标向下移动&#xff0c;获得下一条查询结果。MongoDB分批向用户返回数据结果。通过游标的移动&#xff0c; mongodb确定当前返回结果的位置&#xff0c;是否要加载更多数据到内存当中。cursor有默认的超时时间&#xff0c; 超时后cu…...

电脑风扇转一下停一下,无法正常开机问题解决

今天同事电话说电脑开不了机了&#xff0c;只听见风扇不停地呜呜地作响。笔者第一反应是不是硬件哪里出问题了&#xff0c;于是二话没说拿起心爱的螺丝刀就闪了过去。 按下电源&#xff0c;确实如电话所述。但感觉风扇并非一直在转&#xff0c;而是时断时续。由于听不大真切&a…...

无需部署服务器,如何结合内网穿透实现公网访问导航页工具Dashy

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起&#xff0c;形成自己的导航…...

Go GORM简介

GORM&#xff08;Go Object-Relational Mapping&#xff09;是一个用于Go语言的ORM库&#xff0c;它提供了一种简单、优雅的方式来操作数据库。GORM支持多种数据库&#xff0c;包括MySQL、PostgreSQL、SQLite和SQL Server。以下是GORM的一些主要特性 全功能ORM&#xff1a;GORM…...

前端量子纠缠 效果炸裂 multipleWindow3dScene

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…...

第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息

文章目录 第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息XMLIGNORENULLXMLNILXMLUSEEMPTYELEMENT 导入值 第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XML…...

Asp.net core WebApi 配置自定义swaggerUI和中文注释

1.创建asp.net core webApi项目 默认会引入swagger的Nuget包 <PackageReference Include"Swashbuckle.AspNetCore" Version"6.2.3" />2.配置基本信息和中文注释&#xff08;默认是没有中文注释的&#xff09; 2.1创建一个新的controller using Micr…...

Xilinx SDK获取代码运行时间

Xilinx SDK获取代码运行时间 一、API 头文件 “xtime_l.h”函数XTime_GetTime(XTime * xtime),获取周期数时钟频率宏 COUNTS_PER_SECOND 二、使用 #include "xtime_l.h"int main(){XTime tBegin, tEnd;unsigned int t_us;unsigned long long cycles;XTime_GetTim…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...