linux简述进程

进程

计算机四大存储资源:磁盘资源、内存资源、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杀死进程

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

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

相关文章

POJ P1088动规的三种解法

Language:Default 滑雪 Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 123098Accepted: 47211 Description Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xff0c;滑的区域必须向下倾斜&#xff0c;而且当你滑到坡底&#x…

Junos webauth_operation.php 文件上传漏洞复现(CVE-2023-36844)

0x01 产品简介 Junos 是 Juniper Networks 生产的一款可靠的高性能网络操作系统。 0x02 漏洞概述 Junos webauth_operation.php接口处存在文件上传漏洞&#xff0c;未经身份认证的攻击者可利用 Junos 操作系统的 J-Web 服务 /webauth_operation.php 路由上传 php webshell&…

MySQL系列 - 数据类型

MySQL是一种常用的关系型数据库管理系统&#xff0c;它支持多种数据类型&#xff0c;包括整数、浮点数、字符串、日期和时间等。在本文中&#xff0c;我们将介绍MySQL中常用的数据类型及其用法。 MySQL数据类型介绍&#xff1a; 1、整数类型&#xff1a; MySQL提供了多种整数…

聚观早报 |魅族21搭载超声波指纹2.0;华为长安成立新公司

【聚观365】11月28日消息 魅族21搭载超声波指纹2.0 华为长安成立新公司 OPPO Reno11 Pro本周首销 淘宝天猫推出系列AI工具 长城汽车计划全面进入欧洲市场 魅族21搭载超声波指纹2.0 魅族官方此前已宣布&#xff0c;将于11月30日召开“2023魅族秋季无界生态发布会”&#x…

【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏3(附项目源码)

文章目录 本节最终效果前言近战武器控制近战武器生成升级增加武器伤害和数量查找离主角最近的敌人子弹预制体生成子弹发射子弹参考源码完结 本节最终效果 前言 本节紧跟着上一篇&#xff0c;主要实现武器功能。 近战武器 新增Bullet&#xff0c;子弹脚本 public class Bull…

Shell编程基础 – for循环

Shell编程基础 – for循环 Shell Scripting Essentials - for Loop 大多数编程语言都有循环的概念和语句。如果想重复一个任务数十次&#xff0c;无论是输入数十次&#xff0c;还是输出数十次&#xff0c;对用户来说都不现实。 因此&#xff0c;我们考虑如何用好Bash Shell编…

单片机BootLoader是咋回事?

BootLoader的定义&#xff1a; CPU进入APP之前运行的一小段程序代码就叫做BootLoader。它是由程序员编写的&#xff0c;作用是更新应用程序。这也就说明了只有BootLoader的单片机才可以升级。有的产品有升级的需要就需要BootLoader了。 单片机的启动过程可以这么叙述&#xff…

【C++】set/multiset/map/multimap

目录 一、关联式容器 1.1 树形结构的关联式容器 二、set 2.1 set的介绍 2.2 set的使用 2.2.1 set的构造 2.2.2 set的迭代器 2.2.3 set的容量函数 2.2.4 set的功能函数 2.2.5 set的使用举例 三、multiset 3.1 multiset的介绍 3.2 multiset的使用演示 四、map 4.1…

Linux内核--内存管理(三)物理内存分页机制--kmalloc及slub机制

一、引言 二、slub机制 ------>2.1、slub分配原理slub原理 ------>2.2、slub分配原理 ------>2.3、slub释放原理 ------>2.4、SLUB分配器 三、slub数据结构 ------>3.1、kmem_cache ------>3.2、kmem_cache_cpu ------>3.3、kmem_cache_node --…

线性表之队列

文章目录 主要内容一.队列1.队列的顺序存储代码如下&#xff08;示例&#xff09;: 2.队列的链式存储3.双端队列 总结 主要内容 队列 一.队列 队列是一种先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的线性数据结构&#xff0c;它具有两个基本操作&a…

什么是路由抖动?该如何控制

路由器在实现不间断的网络通信和连接方面发挥着重要作用&#xff0c;具有所需功能的持续可用的路由器可确保其相关子网的良好性能&#xff0c;由于网络严重依赖路由器的性能&#xff0c;因此确保您的路由器不会遇到任何问题非常重要。路由器遇到的一个严重的网络问题是路由抖动…

Java自学过程中的学习技巧与方法分享

问题&#xff1a;请解释一下SELECT语句在单表查询中的作用&#xff0c;并结合示例代码说明如何使用SELECT语句进行单表查询。 答案&#xff1a; 在数据库中&#xff0c;使用SELECT语句进行单表查询是非常常见和基础的操作。SELECT语句用于从数据库表中检索数据&#xff0c;可…

使用 watch+$nextTick 解决Vue引入组件无法使用问题

问题描述&#xff1a; 很多时候我们都需要使用第三方组件库&#xff0c;比如Element-UI&#xff0c;Swiper 等等。 如果我们想要在这些结构中传入自己从服务器请求中获取的数据就会出现无法显示的问题。 比如我们在下面的Swiper例子中&#xff0c;我们需要new Swiper 才能让…

【华为OD题库-043】二维伞的雨滴效应-java

题目 普通的伞在二维平面世界中&#xff0c;左右两侧均有一条边&#xff0c;而两侧伞边最下面各有一个伞坠子&#xff0c;雨滴落到伞面&#xff0c;逐步流到伞坠处&#xff0c;会将伞坠的信息携带并落到地面&#xff0c;随着日积月累&#xff0c;地面会呈现伞坠的信息。 1、为了…

mysql主从复制-redis集群扩容缩容、缓存优化(缓存更新策略、穿透,击穿,雪崩)、mysql主从搭建、django实现读写分离

基于Docker实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 1.2 集群缩容 2 缓存优化 2.1 缓存更新策略 2.2 穿透&#xff0c;击穿&#xff0c;雪崩 3 mysql主从搭建 4 django实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 # 6台机器&#xff0c;3个节点集群# 8台机器&am…

第12关 精通K8s下的Ingress-Nginx控制器:生产环境实战配置指南

------> 课程视频同步分享在今日头条和B站 大家好&#xff0c;我是博哥爱运维&#xff0c;这节课带来k8s的流量入口ingress&#xff0c;作为业务对外服务的公网入口&#xff0c;它的重要性不言而喻&#xff0c;大家一定要仔细阅读&#xff0c;跟着博哥的教程一步步实操去理…

一文总结Java获取文件后缀名的所有方法

Java是一种应用广泛的编程语言,可以通过多种方式来实现对文件的操作&#xff0c;如文件名后缀、文件扩展名等&#xff0c;下面这篇文章主要给大家介绍了关于Java获取文件后缀名的所有方法,需要的朋友可以参考下 一、研究背景 在我们实际的项目开发中&#xff0c;我们会经常对…

HTML5语法总结大全(持续更新中~)

参考书籍&#xff1a; 《HTML与CSS3基础教程》 参考视频&#xff1a; HTML5完整教学通俗易懂 2023新版前端Web开发HTML5CSS3移动web视频教程&#xff0c;前端web入门首选黑马程序员 参考网站&#xff1a; w3school 文章目录 零.开发环境准备1.需要的工具2.Vscode所需要插件3.其…

智能优化算法应用:基于混合蛙跳算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于混合蛙跳算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于混合蛙跳算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.混合蛙跳算法4.实验参数设定5.算法结果6.参考…

Snagit 2024.0.1(Mac屏幕截图软件)

Snagit 2024是一款屏幕截图工具&#xff0c;可以帮助用户轻松捕获、编辑和分享屏幕截图。该工具在Mac上运行&#xff0c;旨在满足用户对于屏幕截图的各种需求。 Snagit 2024支持屏幕录制功能&#xff0c;可以录制摄像头和麦克风等外部设备&#xff0c;让用户录制更加全面的视频…