Linux下的进程管理(入门) 一.理解进程和线程。·1.1什么是进程1.进程是程序在操作系统中的一次执行过程是系统进行资源分配和调度的基本单位。2.它包含了程序执行所需的各种资源如内存空间、文件描述等。3.每个进程都有自己独立的内存空间和系统资源不同进程之间相互隔离。4.程序是静态的代码文件。5.进程是指程序运行时的形态。6.进程是程序的一个副本。7. 进程是有生命周期的准备期运行期终止期。1.2什么是线程。1.线程是进程中的一个执行单元是CPU调度和分派的基本单位。2.一个进程可以包含多个线程这些线程共享进程的内存空间和系统资源。3.每个线程有自己独立的栈空间和程序计数器。4.线程之间可以并发执行提高程序的执行效率。5.当进程是多任务CPU是多核心多任务应该同时被每个核心处理每个核心处理的任务叫做线程。二.进程的状态1.进程状态码R (TAKS_RUNNING 含义可执行状态running,ready2.进程状态码S (TASK_INTRRUPTABLE) 含义可唤醒状态3.进程状态码D (TASK_UNINTRRUPABLE) 含义不可唤醒休眠4.进程状态码T (TASK_STOP) 含义暂停状态5.进程状态码Z (TASK_zombie) 含义僵死态三.进程查看方法3.1在图形中查看进程。命令【xxxx】# gnome-system-monitor #打开图形中的进程管理工具。运行结果3.2常用的进程查看命令。3.2.1.ps #进程查看#ps 命令的三种执行风格 unix bsd GNU#unix风格必须以 - 开头遵循通用unix规范跨系统兼容性最好#-e 显示所有进程#-f 显示信息的完整格式#-H 显示进程的层级结构#-o 显示指定参数#bsd风格不加 - 直接写字母进程状态STAT是bsd风格特色#a 与终端相关的进程当用户登录系统后产生的进程都是带终端的#x 与终端无关的进程#u 用户信息归类的查看方式#f 进程层级关系#o 显示指定参数#GNU风格以 -- 开头接完整英文单词属于Linux独有GNU扩展可读性强一般用于精细控制输出排序过滤。#--sort3.2.2.ps ax显示信息如下#PID 进程id#TTY 进程用到的终端#STAT 进程状态#TIME 进程占用cpu时长#COMMAND 进程名称3.2.3.ps aux显示信息如下#USER 进程所有人#PID 进程id#%CPU 进程使用cpu的用量#%MEM 进程所用到的内存用量#VSZ 进程使用的虚拟内存大小#RSS 进程常驻内存中的数据大小#TTY 进程用到的终端#STAT 进程状态#START 进程运行时长#TIME 进程占用CPU时长#COMMAND 进程名称3.2.4pgrep #进程过滤#-u uid 显示指定用户的进程#-u user 显示指定用户的进程#-t tty 显示指定终端的进程#-l 显示进程名称#-a 显示进程完整名称#-p 显示进程的子进程3.2.5 pidof 进程名称 ##查看vim的pid3.2.6 top #动态进程的查看#top命令的参数#-d 指定的刷新频率#-b 以批次方式显示#-n 指定显示的批次数量##top内部指令进入top界面后可执行的指令#p CPU排序#M 内存排序#T 累计占用cpu时间排序#L(小写) 关闭/开启uptime信息#t 关闭/开启cputask#s 指定刷新频率#k 操作进程#u 查看指定用户进程top中的内容显示信息#21:32:01 系统时间#up 1:16 运行时长#3 users 系统中有三个用户登陆#load average: 0.010.050.061min 5min 15min#Tasks:#304 total 任务总量#1 running 正在运行#303 sleeping 休眠人物数量#0 stopped 被暂停数量#0 zombie 僵死人物数量#%Cpu(s)#1.5 us用户空间#1.9 sy内核空间#0.0 ni nice值调整时间#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:交换分区用量#PID进程id#USER进程所有者的用户名#PR优先级#NI nice值。负值表示高优先级正值表示低优先级#VIRT进程使用的虚拟内存总量单位kb。VIRTSWAPRES#RES进程使用的、未被换出的物理内存大小单位kb。RESCODEDATA#SHR共享内存大小单位kb#S进程状态(D不可中断的睡眠状态,R运行,S睡眠,T跟踪/停止,Z僵尸进程)#%CPU上次更新到现在的CPU时间占用百分比#%MEM进程使用的物理内存百分比#TIME进程使用的CPU时间总计单位1/100秒#COMMAND命令名/命令行四.进程的前后台调用ctrlz##把占用shell的进程打入后台挂起bg##把后台挂起的进程运行起来fg##把后台进程调回前台命令##运行进程在后台jobs##查看当前shell中在后台的所有工作五.进程的优先级5.1进程优先级定义1. 进程优先级Process Priority是Linux内核用于决定CPU资源分配的关键指标2. 优先级越高的进程越有可能被CPU优先调度执行5.2优先级种类1.静态优先级由用户或管理员在进程启动时或运行中手动设置范围为-20最高优先级到19 (最低优先级)数值越小优先级越高。2.动态优先级由内核根据进程的运行状态如CPU使用时间、睡眠时长等自动调整以平衡系统资源分配。5.3静态优先级的调整方法优先级范围值#范围0--139#内核自控优先级范围0-99#用户可控优先级100-139nice-n -5cat##指定优先级打开进程renice-n -543331##更改优先级进程状态字符详解S#sleeping#优先级高s#顶级进程T#stopN#优先级底R#running#运行在前台六 进程信号的使用6.1进程信号的定义在Linux系统中进程信号Process Signal是一种软件中断机制用于在进程之间传递异步通知。它为系统提供了一种处理异常情况、实现进程间通信的简单方式。信号可以由系统内核、其他进程或者用 户手动发送给目标进程当进程接收到信号时会根据信号的类型执行相应的操作,如终止进程、暂停 进程、忽略信号等。6.2用户可控进程信号信号名称信号编号默认行为描述SIGHUP1终止进程终端断开连接时发送给与该终端关联的进程常用于重新加载配置文件SIGINT2终止进程用户在终端按下CtrlC时发送给当前前台进程SIGQUIT3终止进程并生成核心转储文件用户在终端按下Ctrl\时发送给当前前台进程SIGTERM15终止进程通常用于请求进程正常终止是系统默认的终止信号SIGKILL9强制终止进程不能被捕获、阻塞或忽略用于强制终止无法正常响应的进程SIGCONT18继续执行暂停的进程用于恢复被暂停的进程SIGSTOP19暂停进程不能被捕获、阻塞或忽略用于暂停进程的执行SIGSTOP20暂停进程可以被捕获、阻塞或忽略用于暂停进程的执行信号特点可捕获、阻塞和忽略像SIGHUP、SIGINT、SIGTERM这类信号进程可以编写相应的信号处理函数来捕获它们也可以选择阻塞暂时不处理或者忽略这些信号。不可捕获、阻塞和忽略SIGKILL和SIGSTOP信号比较特殊进程无法对其进行捕获、阻塞或忽略操作这保证了在必要时可以强制终止或暂停进程6.3如何使用进程信号#进程信号控制工具kill进程信号 pid#处理精确指定的进程killall进程信号 进程名字#按照进程名称批量处理进程pkill进程信号 进程条件#按照条件处理进程七systemd守护进程7.1守护进程是什么1.守护进程Daemon是一种在后台持续运行的特殊进程它不与终端直接交互通常在系统启动时自动启动并在系统关闭时才停止。2.守护进程的设计目的是为系统提供各种服务例如网络服务如HTTP服务器、FTP服务器、日志服务、定时任务服务等。它们默默地在后台运行为其他进程和用户提供支持确保系统的正常运行。7.2守护进程的特点在后台运行守护进程不会占用终端不会受到用户登录或注销的影响持续在后台执行任务。生命周期长一般从系统启动开始运行直到系统关闭才停止为系统提供长期稳定的服务。无控制终端守护进程没有控制终端不会接收来自终端的输入也不会将输出显示在终端上。自成进程组和会话守护进程通常会创建自己的进程组和会话以确保独立于控制终端和其他进程。7.3 Systemd守护进程1. Systemd是Linux系统中新一代的初始化系统init system它旨在替代传统的SysVinit和Upstart等初始化系统2. Systemd提供了一套强大的工具和机制用于管理系统的启动、服务的管理、资源的分配等。它的设计目标是提高系统的启动速度、简化服务管理、增强系统的可靠性和可维护性。7.4守护进程管理命令systemctl#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关机#1单用户模式#2无图形网络模式#3无图形网络模式#4无图形网络模式#5图形网络模式#6重启