Linux中的进程管理

it2025-01-25  13

文章目录

1.进程1.1进程的定义1.2进程&线程1.3进程的状态 2.进程查看命令3.进程优先级4.进程前后台调用5.进程信息号5.1进程信号5.2进程信号控制工具 6.systemd守护进程

1.进程

1.1进程的定义

程序是静态的代码文件进程是指程序运行时的形态进程是程序的一个副本进程是有生命周期的(准备期,运行期,终止期)

1.2进程&线程

进程是资源调用的最小单位; 线程是进程的最小单位。

程序执行流是从上到下贯穿运行的。

当进程是多任务,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程,线程资源是共享的。

1.3进程的状态

状态解释R (TASKS_RUNNING)可执行状态S (TASK_INTRRUPTABLE)可唤醒休眠D (TASK_UNINTRRUPTABLE)不可唤醒休眠T (TASK_STOP)暂停状态Z (EXIT_ZOMBIE)僵死态

2.进程查看命令

gnome-system-monitor 图形进程查看工具

ps 进程查看

ps命令的三种执行风格,(unix,bsd,GUN)

参数解释a与终端相关的进程x与终端无关的进程u用户信息归类的查看方式f进程层级关系o显示指定参数,(pid,comm,nice,pri,pcpu,ppid,stat,user,group)-e显示所有进程-f显示信息的完整格式-H显示进程的层级结构-o显示指定参数- - sort=排序显示

注意:

UNIX参数带(-)和BSD格式参数不带(-)

ps ax显示信息如下:

参数解释PID进程idTTY进程用到的终端STAT进程状态TIME进程占用cpu时长COMMAND进程名称

ps aux显示信息如下:

参数解释USER进程所有人PID进程id%CPU进程使用cpu的用量%MEM进程所用到的内存用量VSZ进程使用的虚拟内存大小RSS进程常驻内存中的数据大小TTY进程用到的终端STAT进程状态START进程运行时长TIME进程占用cpu时长COMMAND进程名称 pgrep 进程过滤 参数解释-u pid显示指定用户进程-U user显示指定用户进程-t tty显示指定终端进程-l显示进程名称-a显示进程的完整名称-P显示进程的子进程

pidof vim 查看vim的pid

top 动态进程查看

top中的内容显示信息:

09:47:34 系统时间 up 18:23 运行时长 2 users 系统中有两个用户登录 load average: 0.75, 0.53, 0.41 系统的负载,分别代表平均负载1分钟 5分钟 15 分钟的队列长度(uptime)

Tasks:

331 total 任务总量 3 running 正在运行 329 sleeping 休眠任务数量 0 stopped 被暂停数量 0 zombie 僵死任务数量

%Cpu(s):

参数解释1.5 us用户空间1.9 sy内核空间0.0 ninice值调整时间58.9 id空闲时间0.0 wa等待io时间2.1 hi处理硬件中断时间0.2 si处理软件中断时间0.0 st被偷走的时间(vm使用时间)

MiB Mem:

参数解释7664.6 total总量5383.9 free空闲1312.1 used占用968.8 buff/cache缓存

MiB Swap:交换分区用量

top命令的参数: -d 指定刷新频率 -b 以批次方式显示 -n 指定显示的批次数量

top内部命令: M 内存排序 T 累计占用cpu排序 l 关闭/开启uptime信息 t 关闭/开启cpu&task s 指定刷频率 k 操作进程 u 查看指定用户进程

解释: PID 进程id USER 进程所有者的用户名 PR 优先级 NI nice值,负值表示高优先级,正值表示低优先级 VIRT 进程使用的虚拟内存总量,单位kb。VRIT=SWAP+RES SHR 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA S 进程状态 %CPU 上次更新到现在的CPU使用时间占用百分比 %MEM 进程使用的物理内存百分比 TIME 进程使用的CPU时间总计,单位1/100秒 COMMAND 命令名/命令行

pstree 命令查看进程树:树形结构显示进程

注意:

因为内核不能负载这么多进程,所以开启守护进程systemd是守护进程对进程进行管理,systemd的作用是对子进程进行初始化,守护进程在系统开启时自动打开。

3.进程优先级

系统多任务多用户时的操作模式

任务的重要性是有区分的, 如何确定任务的重要性。 “优先级”: 范围:0-139 内核自控优先级范围:0-99 用户可用优先级:100-139

nice: -10-19

renice -n -5 43331 更改优先级 nice -n -5 cat 指定优先级打开进程

ps - - - > pri - - - 0-39 nice -20-19 priority 0-139 解释: S sleeping < 优先级高 s 顶级进程 T stop N 优先级低 R running + 运行在前台

4.进程前后台调用

ctrl + z 把占用shell的进程打入后台挂起 bg 把后台挂起的进程运行起来 fg 把后台进程调回前台 & 运行进程在后台 jobs 查看当前shell中在后台的所有工作

5.进程信息号

5.1进程信号

信号解释1重新加载系统配置文件(source)2清空内存的进程数据3清空内存中的鼠标(ctrl + \)9强行结束进程(不能被阻塞)15正常关闭进程(会被阻塞)18运行被暂停的进程19暂停进程(不会被阻塞)20暂停进程(会被阻塞的)

5.2进程信号控制工具

kill 进程信号 pid killall 进程信号 进程名字 pkill 进程信号 进程条件

6.systemd守护进程

实验环境:需要两台主机

远程操作主机: ssh 远程主机ip -l 远程主机用户

守护进程: 替内核分担程序控管的程序 通常pid为1

systemed - - - > systemctl systemctl管理系统服务 服务指在系统中开启的共享系统资源到网络中的程序 cs client - - - > server

systemctl命令的用法:

start 开启 stop 关闭 status 查看状态 reload 重新加载 restart 重新启动服务 enable 设定服务开机启动 enable --now 设定服务开机启动并且当前开启服务 disable 设定服务开机不启动 list-units 查看系统所有服务当前状态 list-unit-files 查看服务开机状态 list-dependencies列出服务依赖性 mask 冻结服务 unmask 解冻服务 set-default 设定系统运行模式 multi-user.target 无图形网络模式 graphical.target 有图形网络模式 get-default 查看系统运行模式 0-6 0 POWEROFF 1 single 2 noG+NETWORK 3 4 G+NETWORK 5 REBOOT

status:

stop:

disable:

enable --now:

list-units:

list-unit-files:

list-dependencies:

mask&unmask:

get-default:

set-default:

最新回复(0)