Linux - 进程

一、什么是进程

首先,Linux是一个多用户多进程的操作系统,系统上可以同时运行多个进程。

进程的产生:①是在执行程序或者命令时产生的;②定时任务进程

进程的类型:前台进程/后台进程

前台进程:一个终端界面,一次只能执行一个程序或者命令;

后台进程:可以同时执行多个程序或者命令;

不论前台进程还是后台进程都受限于终端,如果终端被kill,前后台的进程也会被kill


二、进程的状态(STAT)

R 正在运行

S 休眠/静默 ==> 等待运行

Z 僵尸 ==> 父进程无法正常终止子进程/系统资源到达临界值

T 已经停止

Ss // 父进程

S< // 优先级较高的进程

SN // 优先级较低的进程

R+ // 前台的进程组

SI // 以线程的方式运行


三、进程查看

常用查询终端命令及进程排序

tty // 查看当前终端

who // 查看机器上所有的终端

w // 查看机器上所有的终端详情

--sort // 从低到高排序

--sort - // 从高到低排序

1.查看瞬时的进程状况 ps

①ps -ef

首行,从左往右依次为:

拥有者 进程号 父进程号 cpu占用率 开始时间 终端名 运行时间 命令

②ps aux

首行,从左往右依次为:

拥有者 pid cpu占用率 内存占用率 占用的虚拟内存大小 驻留内存大小 终端 进程状态

开始时间 运行时间 命令

③ps axo
// 自定义查看进程的内容,一般携带命令作为查看的内容
④pgrep // 查询指定的服务或者命令的pid,一般用来查持续运行状态下的服务的pid
⑤pstree // 查看进程与进程之间的关系

2.查看即使的进程状况 top/htop

top //top查看进程状况时,默认以cpu占用从高到底进行排序

top 前五行

第一行:top - 06:18:40 up 3:15, 1 user, load average: 0.06, 0.02, 0.00

含义分别是:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5 分钟、15 分钟内的平均值,数值越小意味着负载越低)

第二行:Tasks: 365 total, 1 running, 364 sleeping, 0 stopped, 0 zombie

含义分别是:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵尸的进程数。

第三行:%Cpu(s): 0.4 us, 0.5 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st

含义分别是:用户占用资源百分比系统内核占用资源百分比 、改变过优先级的进程资源百分比、空闲的资源百分比、等待输入输出的cpu时间百分比、硬中断占用的cpu百分比、软中断占用的cpu百分比和用于虚拟cpu的情况。

第四行:MiB Mem:7790.6 total, 4309.7 free,2571.4 used, 909.5buff/cache

含义分别是:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。

第五行:MiB Swap: 2095.0 total, 2095.0 free, 0.0 used. 4882.7 avail Mem

含义分别是:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。

htop
==> top的基础上,点击进程信息就能从高到低排序,有高亮效果和搜索功能,支持调整显示信息

四、进程控制

kill 控制进程的方式?

kill 命令通过传递信号来给进程执行相应的操做

kill -l //信号列表

常用的信号

1 对于服务而言,可以在不重启或者停止服务的情况下,重新进行配置;

2 中断进程,相当于ctrl+C

9 强制结束进程

15 正常结束进程,先结束子进程,再结束父进程

18 继续进程

20 暂停进程

控制进程的方式

kill // 结束某个具体进程

pkill //

-u // 踢出某个终端用户

-t // 踢掉某个终端

kiall // 结束相关的所有进程

xkill // 图形化/手动点击结束进程


五、进程调度

为什么要进行进程调度?

首先,前台进程一个终端只能执行一次,然后当某个进程要求不能受终端影响时,需要将任务不挂起且放到后台运行。

nohup //不挂起

fg //前台

bg //后台

jobs //查后台任务

相关推荐
wzhidev9 小时前
05、Python流程控制与函数定义:从调试现场到工程实践
linux·网络·python
艾莉丝努力练剑9 小时前
【Linux:文件】文件基础IO进阶
linux·运维·服务器·c语言·网络·c++·centos
Agent产品评测局9 小时前
企业自动化项目,如何做好内部推广与员工培训?——企业级智能体落地与人才赋能实测指南
运维·人工智能·ai·chatgpt·自动化
艾莉丝努力练剑10 小时前
【MYSQL】MYSQL学习的一大重点:表的约束
linux·运维·服务器·开发语言·数据库·学习·mysql
程序猿编码10 小时前
基于ncurses的TCP连接可视化与重置工具:原理与实现(C/C++代码实现)
linux·c语言·网络·c++·tcp/ip
顶点多余10 小时前
从源码深度探究“线程控制“
java·linux·开发语言
Neo Wordsworth10 小时前
OmniParser-v2.0本地部署教程 WIN11
服务器
gududexiao10 小时前
linux 设置tomcat开机启动
linux·运维·tomcat
山峰哥10 小时前
索引设计失误让系统性能下降90%
大数据·服务器·数据库·oracle·性能优化
国冶机电安装10 小时前
电气安全保护装置:从设计选型到安装验收的全流程解析
服务器·网络·安全