7.linux中的进程管理


前言

本文主要对linux系统中进程进行学习了解,主要内容包括进程查看命令,进程的优先级调用,进程的前后台调用,systemd守护进程以及系统中的登陆审计,学习好本章内容对后续linux远程登陆有很大的帮助。


一、进程定义

进程&线程
进程是程序运行时的状态,是程序的一个副本,而程序是静态的代码文件,进程具有周期性,包括准备期、运行期、终止期。
进程是资源调用的最小单位,每一个进程调用的资源是不可以彼此调用的。
由于cpu核心数量增加了,如果没有线程的概念,一个cpu工作,其他的都在休息不能达到双核同时工作的手段;有了线程,将进程细化,多个核心同时处理多个进程,进而完成程序。

进程状态包括:
可执行:R(TASK_RUNNING)(runing,ready)
可唤醒休眠:S(TASK_INTRRUPTABLE)
不可唤醒休眠:D(TASK_UNINTRRUPTABLE)
暂停状态:T(TASK_STOP)
僵死态:(EXIT_ZOMBIE)


二、如何查看进程

gnome-system-monitor 有图的查看进程
在这里插入图片描述

  • ps #进程查看

在这里插入图片描述

-a unix风格
a BSD风格

ps a #与终端相关的进程(用户登录系统后产生的进程都是带终端的)
在这里插入图片描述

ps x #与终端无关的进程
在这里插入图片描述

ps u #用户信息归类的查看方式
在这里插入图片描述

ps f #进程层级关系
在这里插入图片描述

ps o #显示指定参数pid comm nice pri pcpu ppid
在这里插入图片描述可结合使用:
ps aux 用用户归类的方式查看所有进程
在这里插入图片描述

ps axf 用层级关系的方式查看所有进程
在这里插入图片描述
ps ax -o %cpu,%mem,pid,user,group | less 查看所有进程的cpu占比,内存占比,pid,用户,用户组
在这里插入图片描述unix风格
-e 显示所有进程
-f 显示信息的完整格式 注:-f与f意义不同
-H 显示进程的层级结构
-o 显示指定参数
操作与BSD风格相似。

ps ax | less
在这里插入图片描述显示信息包括:
pid:进程id
tty:进程用到的终端
stat:进程状态
time:进程占用cpu时常
command:进程名称

ps aux | less 显示信息包括
在这里插入图片描述USER:进程所有人
PID:进程id
%CPU:进程使用cpu的用量
%MEM:进程所用到的内存用量
VSZ:进程使用的虚拟内存大小
RSS:进程常驻内存中的数据大小
TTY:进程用到的终端
STAT:进程状态
START:进程运行时长
TIME:进程占用cpu时长
COMMAND:进程名称

  • pgrep 进程过滤
    pgrep -u uid 显示指定用户进程
    在这里插入图片描述pgrep -U username 显示指定用户进程
    在这里插入图片描述pgrep -t tty 显示指定终端进程
    pgrep -l 显示进程名称
    在这里插入图片描述

pgrep -a 显示进程的完整名称 不能单独使用=用 -al(顺序不能换)
在这里插入图片描述 pgrep -P 下时进程的子进程

在这里插入图片描述具体测试流程为:
shell—>gedit---->pidof gedit> pgrep -P gid(shell) ;pidof gedit 查看gedit的pid。

  • top 动态进程查看
    在这里插入图片描述top中显示的信息(面试经常问,要牢记!)
#09:48:51 系统时间
#up 18:54	运行时长
#2 users	系统中有两个用户登陆
#load average: 0.75, 0.53, 0.41	1min 5min 15min
#Tasks:		
#331 total 任务总量
#3 running	 正在运行
#329 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:	交换分区用量

top外部命令
top -d 指定刷新频率(秒)
在这里插入图片描述

-b 以批次形式显示(但不会自动退出top界面)
-n 指定显示批次的数量
top -bn 3 以批次显示,共显示3批次,结束后退出top界面
在这里插入图片描述top的内部命令:进入top界面后可操作的指令
l 去掉/显示uptime信息 顶格时间的这一行
在这里插入图片描述

P cpu排序
在这里插入图片描述

M 内存排序
在这里插入图片描述

T 累计占用cpu时间排序 ,TIME+这一列,进程使用cpu时间总计
在这里插入图片描述

t 关闭/开启cpu&task 不同类型的显示
在这里插入图片描述

s 指定刷新频率
在这里插入图片描述

k 操作进程
k 15正常结束 9强制关闭

u 查看指定用户进程
在这里插入图片描述


三、进程的优先级

系统中会存在多个用户的多个任务,任务的重要性是有区分的,体现在系统的优先级上
优先级范围:0-139 0高 139低
用户可控100-139

nice linux里显示的优先级
pri UNIX里显示的优先级

nice中的-20~19对应用户可控的100-139
后台运行cat进程,通过pgrep抓取进程指定信息包括nice,pri,pid
ps ax -o nice,pri,pid | pgrep cat
在这里插入图片描述

renice -n -1 pid 修改的 调节范围 -20~19
在这里插入图片描述
stat:
S<+ : #S表示正在sleeing,running的一种;
+: #正在shell前台运行
<: #表优先级较高
s: #顶级进程
T stop: 可用kill结束进程,或者进入top界面查找到后按15正常退出
R: running
N :#优先级低


四、进程的前后台调用

ctrl+z 暂停,挂起
在这里插入图片描述

jobs 查看shell在后台运行的所有进程
在这里插入图片描述

bg 1 后台运行
在这里插入图片描述

fg 1 前台运行
在这里插入图片描述

gedit & 运行进程在后台
在这里插入图片描述


五、进程信息号

可控信号
1 重新加载系统配置文件
2 kill -2 pid == ctrl + c 清理内存中的进程
3 ctrl+\ #清空鼠标
9 #强制关闭
15 #正常关闭

19 暂停程序(不会被阻塞)
20 暂停程序(会被阻塞)
18 运行中被暂停的进程

kill #结束进程 kill -9 后面加进程编号
在这里插入图片描述

killall #批量结束进程 killall -9 后面加进程名字
在这里插入图片描述

pkill -u #结束一个用户的进程 pgrep -U 抓取一个用户的进程,然后 pkill -u 删除


六、systemd守护进程

实验环境
配置主机ip 172.25.254.39
配置虚拟机ip 172.25.254.139
nm-connection-editor 设置网络 网卡,

ip addr show ens3 显示网卡上的配置信息
在这里插入图片描述

ssh在主机中登陆虚拟机
在这里插入图片描述

  • pstree 进程树

在这里插入图片描述

  • systemctl 管理系统服务
    systemctl status sshd
    start 开启进程sshd
    在这里插入图片描述

    stop
    在这里插入图片描述

    restart
    在这里插入图片描述reload 不关闭服务下修改配置 id不变
    enabled 开机自动启动
    disable 取消开机自动开启
    disable --now 当前也取消,以后开机也取消
    list-units 所有服当前状态
    plugged 挂起状态
    mounted 外接
    waiting 等待状态
    running 启动状态
    list-unit-files 查看服务开机状态
    list-dependencies 列出服务依赖性
    mask 冻结
    unmask 解冻
    set-default multi-user.target(会自动补齐) 无图形网络模式
    graphical.target(会自动补齐) 有图形的网络模式

    get-default 查看系统运行模式


七、系统中的登陆审计

w 显示正在登陆的账号
在这里插入图片描述

w -i 显示登陆来源 /var/run/utmp
在这里插入图片描述

last 历史登陆记录 /var/log/wtmp 清除掉 > /var/log/wtmp
在这里插入图片描述

lastb 试图登陆但未成功,登陆三次失败会被踢掉;/var/log/btmp
在这里插入图片描述


总结

本文主要对linux系统中进程进行学习了解,主要内容包括进程查看命令,进程的优先级调用,进程的前后台调用,systemd守护进程以及系统中的登陆审计,学习好本章内容对后续linux远程登陆有很大的帮助。
需要牢记systemctl的命令用法,以及守护进程的环境配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值