7.linux中的进程管理

it2025-07-30  6

一.进程

1.进程

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

2.进程和线程

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

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

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

3.进程的状态

进程状态状态R(TASKS_RUNNING)可执行状态(running,ready)S(TASK_INTRRUPTABLE)可唤醒休眠D(TASK_UNINTRRUPTABLE)不可唤醒状态T(TASK_STOP)暂停状态Z(EXIT_ZOMBIE)僵死态

二.进程查看命令

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

ps 命令的三种执行风格 unix bsd GNUbsd风格 命令Valuea与终端相关的进程x与终端无关的进程u用户信息归类的查看方式f进程层级关系o显示指定参数 后跟pid,comm,nice,pri,papu,ppid,stat,user,group unix风格 命令Value-e显示所有进程(相当于上面的ax)-f显示信息的完整格式-eH-H-o显示指定参数–sort=排序(GNU风格)

ps ax -o %mem,comm --sort= -%mem | less #根据内存倒序排序,去掉-就是正序排序

ps ax显示信息如下 显示ValuePID进程idTTY进程用到的终端STAT进程状态TIME进程占用cpu时长COMMAND进程名称 ps aux显示信息如下: 显示ValueUSER进程所有人PID进程id%CPU进程所使用cpu的用量%MEM进程所用到的内存用量VSZ进程使用的虚拟内存大小RSS进程常驻内存中的数据大小TTY进程用到的终端STAT进程状态START进程运行时长TIME进程占用cpu时长COMMAND进程名称 pgrep进程过滤 命令Valuepgrep -u uid显示指定用户进程pgrep -U user显示指定用户进程pgrep -t tty显示指定终端进程pgrep -l user显示进程名称pgrep -a user显示进程的完整名称pgrep -P PID进程的子进程

pidof bash查看bash的pid

top

top内部命令:

命令功能PCPU排序M内存排序T累计cpu时间排序l关闭/开启 uptime信息t关闭/开启cpu&tasks指定刷新频率k操作进程u查看指定用户进程 #PID 进程id #USER 进程所有者的用户名 #PR 优先级 #NI nice值,负值表示高优先级,正值表示低优先级 #VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES #RES 进程使用的、未被患处的物理内存大小,单位kb。RES=CODE+DATA #SHR 共享内存大小,单位kb #S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) #%CPU 上次更新到现在的CPU时间占用百分比 #%MEM 进程使用的物理内存百分比 #TIME+ 进程使用的CPU时间总计,单位1/100s #COMMAND 命令名/命令行

三.进程优先级

系统是多任务多用户的操作模式 任务的重要性是有区分的 如何确定任务的重要性 “优先级” 范围:0-139 内核自控优先级:0-99 用户可控优先级:100-139

nice:-20-19

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

ps—>pri----0-39 nice----------20-19 priority------0-139(100-139)

value含义Ssleeping<优先级高s顶级进程TstopN优先级低Rrunning+运行在前台

四.进程前后台调用

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

五.进程信息号

1.进程信息号

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

2.进程信号控制工具

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

六.system守护进程

systemctl命令用法

命令Valuesystemctl start ssh开启systemctl stop ssh关闭systemctl status ssh查看状态systemctl reload ssh重新加载systemctl restart ssh重新启动服务systemctl enable ssh重新服务开机启动systemctl enable --now ssh设定服务开机启动并当前开启服务systemctl disable ssh设定服务开机不启动systemctl list-units ssh查看系统所有服务当前状态systemctl list-unit-files ssh查看服务开机状态systemctl list-dependencies ssh列出服务依赖性systemctl mask ssh冻结服务systemctl unmask ssh解锁systemctl set-default ssh设定系统运行模式(multi-user.target无图形网络模式;graphical-target有图形的网络模式)systemctl get-default ssh查看系统运行模式(0-6)

最新回复(0)