7、Linux下的进程管理

一、进程定义

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

  • 进程&线程
    1、进程是资源调用的最小单位
    2、线程是进程的最小单位
    3、当进程是多任务,cpu是多核心时,多任务应该同时被每个核心处理,每个核心处理的任务叫做线程,线程的资源是共享的

  • 进程的状态
    R(TASK_RUNNING)       #可执行态(cpu正在处理或者等待被处理)
    S(TASK_INTRRUPTABLE)    #可唤醒休眠
    D(TASK_UNINTRRUPABLE)   #不可唤醒休眠
    T(TASK_STOP)        #暂停状态(人为的)
    Z(EXIT_ZOMBIE)        #僵死态

二、进程查看命令

  • gnome-system-monitor ##图形进程查看工具
    在这里插入图片描述

  • ps ##进程查看
    ps 命令有三种执行风格unix bsd GUN

1、unix执行风格
ps a #与终端相关的进程
ps x #与终端无关的进程
ps u #用户信息归类的查看方式
ps f #按层级关系查看进程
ps o #显示指定参数(pid comm nice pri pcpu ppid stat user group)

2、bsd 执行风格
ps -e #显示所有进程
ps -f #显示进程信息的完整格式
ps -H #显示进程信息的层级结构
ps -o #显示指定参数

3、- -sort=指定参数 #按照指定参数进行排序

ps ax 显示信息如下(显示所有进程)
在这里插入图片描述
PID #进程id
TTY #进程用到的终端
STAT #进程状态
TIME #进程占用cpu时长
COMMAND #进程名称

ps aux 显示信息如下

USER #进程所有人
PID #进程id
%CPU #进程使用cpu的用量
%MEN #进程使用的内存用量
VSZ #进程使用的虚拟内存大小
RSS #进程常驻内存中的数据大小
TTY #进程用到的终端
STAT #进程状态
START #进程运行时长
TIME #进程占用cpu时长
COMMAND #进程名称

  • pgrep #进程过滤
    pgrep -u uid #只显示指定用户进程
    pgrep -U USER #只显示指定用户进程
    pgrep -t tty #只显示指定终端进程
    pgrep -l #显示进程名称
    pgrep -a #显示进程完整名称
    pgrep -P pid #显示该进程下的子进程id

  • pidof 指定进程 #查看指定进程的pid
    在这里插入图片描述

  • top #动态进程查看
    在这里插入图片描述
    top中的内容信息显示
    (1)3:52:48 ##系统时间
    (2)up 18 min ##运行时长
    (3)1 user ##系统中有1个用户正在登陆
    (4)load average:0.00,0.03,0.10 ##三个数分别代表不同时间段的系统平均 负载(一分钟、五分钟、以及十五分钟)
    (5)318 total ##任务总量
    (6)3 running ##正在运行的个数
    (7)315 sleeping ##休眠进程的数量
    (8)0 stopped ##被暂停进程数量
    (9)0 zombie ##僵死进程的数量
    (10)0.3 us ##用户空间
    (11)0.0 sy ##内核空间
    (12)0.0 ni ##nice值调整时间
    (13)99.7 id ##空闲时间
    (14)0.0 wa ##等待io时间
    (15)0.0 hi ##处理硬件中断时间
    (16)0.0 si ##处理软件中断时间
    (17)0.0 st ##被偷走的时间
    (18)MiB MEM ##内存分区用量
    (19)1800.6 total ##内存分区的总量
    (19)188.3 free ##内存分区的空闲
    (20)1257.7 used ##被占用的总量
    (21)354.5 buff/cache ##缓存
    (22)MiB Swap ##交换分区用量(后面的数据和内存分区的表示是一样的)
    top命令的参数
    top -d 数字 ##指定刷新频率(默认刷新频率为3秒钟一次)
    指定动态进程的刷新频率为5秒钟一次
    top -b ##动态进程以批次方式显示
    在这里插入图片描述
    在这里插入图片描述
    top -n 数量 ##指定显示的批次数量
    在这里插入图片描述
    top 内部指令(进入top后使用的命令)
    P ##根据CPU使用的百分比进行排序
    M ##根据内存排序
    T ##累计占用CPU时间排序
    l ##关闭/开启uptime信息
    t ##关闭/开启cpu&task
    s ##指定刷新频率
    k ##对进程进行操作
    u ##查看指定用户进程

三、进程优先级

系统是多任务多用户的操作模式,任务的重要性是有区分的,通过优先级来确定任务的重要性
优先级范围 :0-139
内核自控优先级范围:0-99
用户可控优先级:100-139
nice:-20~19(linux模式下的用户可控优先级范围,相当于100-139)
pri :39-0(unix模式下的用户可控优先级范围,相当于100-139)

  • renice -n nice pid ##更改指定pid的优先级
    用到的监控命令 ps ax -o pid,nice,pri,comm | grep vim
    在这里插入图片描述
  • niec -n nice 指定用户 ##指定优先级打开进程
    在这里插入图片描述
  • 进程状态显示
    S ##sleeping
    < ##优先级高
    s ##顶级进程
    T ##stop进程
    N ##优先级低
    R ##正在运行的进程
    +##运行在前台
    用到的监控命令 ps ax -o pid,nice,pri,comm,stat | grep gedit(stat用来查看进程状态)
    在这里插入图片描述

四、进程前后台调用

  • < ctrl >+< z > ##把占用shell的进程打入后台挂起
    在这里插入图片描述
  • bg ##把后台挂起的进程运行起来在这里插入图片描述
  • fg #把后台进程调回前台

在这里插入图片描述

  • & ##进程运行在后台(在启动进程的同时就把进程运行在后台,不占用当前shell)

在这里插入图片描述

  • jobs ##查看当前shell中在后台的所有工作
    在这里插入图片描述

五、进程信息号

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

kill 进程信号 pid(对指定进程通过进程信号进行控制)
在这里插入图片描述

  • killall 进程信号 进程名字(对同一类进程进行相应操作)
    在这里插入图片描述
    在这里插入图片描述

  • pkill 进程信号 进程条件(对同一条件进程进行相应操作)
    在这里插入图片描述
    在这里插入图片描述

六、systemd守护进程

  • 守护进程
    替内核分担程序管控的程序
    通常pid为1
  • systemctl命令(管理系统服务的控制命令)
    systemctl strat 服务 ##开启服务
    systemctl stop 服务 ##关闭服务
    systemctl status 服务 ##查看服务的状态
    systemctl reload 服务 ##重新加载服务(在不重启的情况下改变它的系统配置)
    systemctl restart 服务 ##重新启动服务(先stop再start)
    systemctl enable 服务 ##设定开机启动(不会影响当前服务状态)
    systemctl enable --now 服务 ##设定服务开机启动并当前开启服务
    systemctl disable 服务 ##设定服务开机不启动(不会影响当前服务状态)
    systemctl list-units 服务 ##查看系统所有服务当前状态
    systemctl list-unit-files 服务 ##查看服务开机状态
    systemctl list-dependencies 服务 ##列出服务依赖性
    systemctl mask 服务 ##冻结服务
    systemctl unmask 服务 ##解锁服务
    systemctl set-default 模式 ##设定系统运行模式(无图形网络模式multi-user.tartget/有图形网络模式graphical.target)
    systemctl get-default ##查看系统运行模式(runlevel查看当前系统运行的模式数字化显示)
    在这里插入图片描述

系统运行模式0-6
0 ##POWEROFF(关机)
1 ##single(单用户)
2 ##noG+NETWORK(无图形的网络模式)
3 ##(无图形的网络模式)
4 ##(无图形的网络模式)
5 ##G+NETWORK(有图形的网络模式)
6 ##REBOOT (重启)

七、系统中的登录审计

  • w ##显示正在登陆系统的账号(该信息储存在/var/run/utmp)
    w -i ##显示登录来源
    在这里插入图片描述
  • last ##显示登录成功现在已经退出的(显示的信息放在/var/log/wtmp)
    在这里插入图片描述
  • lastb ##显示试图登录但未成功的(显示的信息放在/var/log/btmp)
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值