六、管理Linux系统中的进程

六、管理Linux系统中的进程

6.1 进程理解

6.1.1 进程

  • 程序是静态文件
  • 进程时运行中的程序的一个副本
  • 进程存在生命周期(准备,运行,终止)

6.1.2 进程状态

状态 定义
R(TASK_RUNNING 可执行状态(RUNNING,REDAY
S(TASK_INTERRUPTIBLE) 可唤醒睡眠状态
D(TASK_UNINTERRUPTABLE) 不可唤醒睡眠状态
T(TASK_STOPPED) 暂停状态
Z(EXIT_ZOMBLE) 僵死态

6.2 进程查看

6.2.1 查看进程树(pstree)

[root@localhost Desktop]$  pstree  #查看进程树

进程树

6.2.2 显示当前命令执行时进程状态(ps)

命令 效果
ps a 显示与终端相关进程(BSD)
ps x 显示所有与终端无关进程(BSD)
ps u 以用户为归类来显示进程状态信息(BSD)
ps f 层级结构显示进程信息
ps o 指定查看选项 pid comm.nice,pri,pcpu,stat,ppid
ps -e 显示所有进程(unix)
ps -f 显示完整格式信息(unix)
ps -H 层级结构显示进程的相关信息
ps -o 指定查看选项,pid comm,nice ,%cpu,%mem
  • 例子1
[root@localhost Desktop]$ ps auf #用层级结构以及用户为归类显示与终端相关进程

ps

  • 例子2
[root@localhost Desktop]$ ps -eo pid,comm,nice,%cpu #指定显示

ps

  • PS 命令显示信息
字段 解释
USER 用户名称
PID 进程id
%CPU CPU用量百分比
%MEM 内存用量百分比
VSZ 占用虚拟内存大小
RSS 常驻内存集大小
TTY 字符终端
STAT 进程状态
START 运行时间
TIME 占用CPU时间
COMMAND 进程名称

6.2.2 显示指定信息进程(pgrep)

命令 效果
pgrep -u + ‘uid’ 显示指定用户进程
pgrep -U+‘name’ 显示指定用户进程
pgrep -t+‘tty’ 显示指定终端进程
pgrep -l 显示进程名称
pgrep -a 显示完整格式进程名
pgrep -P+ ‘pid’ 显示指定进程的子进程
  • 例子
[root@localhost Desktop]$ pgrep -u 1000 #显示uid为1000的进程
[root@localhost Desktop]$ pgrep -U student #显示student用户的进程
[root@localhost Desktop]$ pgrep -t pts/0 #显示终端进程
[root@localhost Desktop]$ pgrep -lu 1000 # 显示进程名称
[root@localhost Desktop]$ pgrep -aU student #显示完整进程名称
[root@localhost Desktop]$ pgrep -P 0 显示0进程的子进程

6.2.3 根据进程名称获取pid (pidof)

pidof +进程名称 可以获取进程pid

  • 例子
[root@localhost Desktop]$ pidof vim # 获取vim的pid

6.2.4 显示进程信息(top)

[root@localhost Desktop]$ top #显示进程信息

top

  • top内部参数
参数 效果
P cpu百分比进行排序
M 内存百分比排序
T 累计占用CPU时间排序
l 开启/关闭uptime信息
t 开启/关闭task&cpu信息
s 调整刷新频率(默认3S)
k 终止进程
u 查看指定用户进程
q 退出top
d 改变刷新时间
  • top 命令参数
[root@localhost Desktop]$ top -d 5 # 改变刷新时间为5S
[root@localhost Desktop]$ top -b #以批次方式显示
[root@localhost Desktop]$ top -n 10 #显示批次数量10
命令 效果
top -d+‘时间’ 指定刷新间隔
top -b 一批次方式显示
top -n +‘数量’ 显示批次数量
  • top显示进程信息详解
top 系统当前时间
up 系统运行时间
user 登陆当前系统的用户数量
load average 平均负载1分钟5分钟15分钟的队列长度(uptime)
task 任务
%cpu cpu占用百分比
mem 物理内存
swap 交换分区占用
  • %cpu详解
us 用户空间
sy 内核空间
ni nice调整空间
id 空闲时间
wa 等待 io
hi 处理硬件中断
si 处理软件中断
st 被虚拟化程序占用的百分比

6.3 进程优先级

6.3.1 按照资源占用划分进程的类型

资源使用量 进程类型
cpu使用密集 CPU-Bound
I/O使用密集 I/O-Bound

6.3.2 优先级范围

  • 对Linux而言优先级被划分成固定个数(0-139)
  • 1-99为实时有优先级,数字越大优先级越高,不用手动处理系统自用
  • 100-139为静态优先级,数字越小优先级越高

6.3.3 NICE 值

  • NICE值:-20~19对用静态优先级
  • 普通用户只可以调低优先级,超级用户任意调整
  • 优先级命令
[root@localhost Desktop]$ ps ax -o nice,pid,comm #查看进程状态
[root@localhost Desktop]$ nice -n 5 vim file #新建一个优先级为5的文件file
[root@localhost Desktop]$ renice -n 10 2988 #将pid为2988的进程优先级改为10

nice

6.4 进程前后台调用

  • 进程前后台调用相关命令
指令 含义
jobs 查看后台任务
ctrl+Z 将前台运行进程打入后台
bg 激活后台进程
fg 调回进程
& 运行在后台
  • 例子1 演示bg命令
    bg
  • 例子2 演示fg命令
    fg

6.5 信号

  • 可控信号类型
[root@localhost Desktop]$ man 7 signal #查看信号详细信息

man

可控信号 含义
1 刷新
2 中断键盘输入
3 退出键盘
9 强制结束
15 正常关闭
18 激活进程
19 强制暂停
20 正常暂停
  • 信号指令
    kill + '-信号‘ +pid
    pkill+ ’ -信号‘ +name
    killall +‘-信号’+name 批量处理
  • 例子
[root@localhost Desktop]$ kill -9 2988 #强制结束2988进程
[root@localhost Desktop]$ killall -9 vim # 强制结束vim所有进程

kill

6.6 系统守护进程

6.6.1 守护进程的定义

  • 守护进程就是通常讲的Daemon进程
  • 是linux后台执行的服务进程
  • 是独立控制终端,周期性的执行某种任务或等待处理某些发生事件
  • 不会随终端关闭而停止,直到接受停止信息才会结束

6.6.2 守护进程类型

守护进程类型 使用系统及特点
Sysv 经典的守护进程类型延用到rhel6
upstart 做到并行启动rhel6中应用
system 独立完成启动,rhel7中使用

6.6.3 systemctl 用法

指令 用途
systemctl list-unit-files 查看服务开机运行情况
systemctl list-units 查看服务当前运行情况
systemctl list dependencies 查看服务依赖性
systemctl status service 查看服务状态
systemctl start service 开启服务
systemctl stop service 关闭服务
systemctl reload service 重新加载服务配置
systemctl restart service 重新启动服务
systemctl enable service 设定服务开启启动
systemctl enable -now service 设定服务开机启动并开始服务
systemctl disable service 设定服务开机关闭
systemctl set-default multi-user.target 设定系统年运行级别为无图形网络模式
systemctl set-default graphical.target 设定系统运行级别为图形网络模式
  • 例子1 查看状态
    查看状态
  • 例子2 查看开启关闭的服务
    在这里插入图服务片描述
  • 例子3 查看当前运行状态
    当前
  • 例子4 在运行中查找服务 /+服务名称
    在这里插入图片ssh描述
  • 例子5关闭服务
    在关闭这里插入图片描述
发布了9 篇原创文章 · 获赞 4 · 访问量 681

猜你喜欢

转载自blog.csdn.net/weoopp/article/details/104171975
今日推荐