Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 介绍

  • 安装

  • 基础

    • Linux目录结构
    • vi与vim编辑器
    • 关机与重启
    • 用户登录与注销
    • 用户管理
    • 用户组管理
    • 运行级别
    • 帮助命令
    • 文件目录操作
    • 日期与时间操作
    • 搜索查找
    • 压缩与解压
    • 文件组管理
    • 文件权限管理
    • 任务调度
    • 磁盘分区与挂载
    • 网络配置
    • 进程管理
      • 介绍
      • ps 显示系统执行的进程
        • ps aux 查看所有进程
        • ps -ef 父子进程的关系
      • kill killall 终止进程
      • pstree 查看进程树
      • top 动态监控进程
        • 关于安装htop
    • 服务管理
    • RPM与YUM
    • SSH配置
    • 附-常用快捷键
  • shell

  • 面试与总结
  • System-Linux
  • 基础
Shetengteng
2022-02-26

进程管理

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,占用一定的系统资源

# 介绍

在linux中,每个执行的程序,代码都称为一个进程,每个进程都分配一个ID号

每个进程,都会对应一个父进程,父进程可以复制多个子进程,如 www 服务器

每个进程都可能以2种方式存在

  • 前台进程:用户目前的屏幕上可以进行操作的
  • 后台进程:实际操作的进程;在屏幕上无法看到的进程,通常使用后台方式执行

一般系统的服务都是以后台进程的方式存在,都会常驻在系统中,直到关机才结束

# ps 显示系统执行的进程

process status

基本语法

  • ps -a 显示当前终端的所有进程信息
  • ps -u 以用户的格式显示进程信息
  • ps -x 显示后台进程运行的参数

# ps aux 查看所有进程

ps -aux | grep xxx

[root@hadoop100 home]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0  19344  1552 ?        Ss   Mar10   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Mar10   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Mar10   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    Mar10   0:00 [ksoftirqd/0]
....
1
2
3
4
5
6
7

说明

  • USER 该进程是由哪个用户产生的
  • PID 进程的ID号
  • %CPU 该进程占用CPU资源百分比
  • %MEM 占用物理内存百分比
  • VSZ 占用虚拟内存大小,单位KB
  • RSS 占用实际物理内存大小,单位KB
  • TTY 进程是哪个终端中运行的
    • tty1-tty7 代表本地控制台
    • tty1-tty6代表本地字符界面终端
    • tty7是图形终端
    • pts/0-255代表虚拟终端
  • STAT 进程状态
    • R 正在运行
    • S 睡眠
    • T 停止状态或者被跟踪
    • D 短期等待
    • Z 僵死进程
    • s 表示该进程是会话的先导进程
    • N 表示进程拥有比普通优先级更低的优先级
  • START 进程的启动时间
  • TIME 进程占用CPU运算时间,不是系统时间,进程使用CPU的总时间
  • COMMAND 产生此进程的命令和参数,如果过长会被截断显示

# ps -ef 父子进程的关系

命令格式

  • ps -ef | grep xxx
    • 以全格式显示当前所有的进程
    • -e 显示所有进程
    • -f 全格式
[root@hadoop100 home]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 Mar10 ?        00:00:01 /sbin/init
root          2      0  0 Mar10 ?        00:00:00 [kthreadd]
root          3      2  0 Mar10 ?        00:00:00 [migration/0]
root          4      2  0 Mar10 ?        00:00:00 [ksoftirqd/0]
....
1
2
3
4
5
6
7

说明:BSD风格显示

  • UID 用户ID
  • PID 进程ID
  • PPID 父进程ID
  • C CPU用于计算执行优先级的因子,值越大,说明进程是CPU密集型运算,执行优先级会降低;值越小,说明进程是IO密集型运算,执行优先级会提高
  • STIME 进程启动时间
  • TTY 完整的终端名称
  • TIME CPU时间
  • CMD 启动进程所有的命令和参数

应用实例

  • 查看sshd 进程的父进程号
    • ps -ef | grep sshd

# kill killall 终止进程

若某个进程执行一半,需要停止时,或者已经消耗了很多的系统资源时,此时需要考虑停止该进程

基本语法

  • kill [选项] 进程号
    • 通过进程号杀死进程
    • 选项
      • -9 表示强迫进程立刻终止
  • killall 进程名称
    • 通过进程名称杀死进程,支持通配符
    • 在系统因为负载过大而变慢时很有用

示例

  • kill -9 5553
  • killall firefox

应用案例

  • 剔除某个非法登录的用户
    • ps -aux | grep sshd
      • 通过该命令,查出正在使用ssh的用户信息,找到对应的pid信息
    • kill 对应pid值
  • 终止远程登录服务sshd,在适当的时候重启sshd服务
    • ps -aux | grep sshd
      • 找到执行命令是 /usr/sbin/sshd的pid信息
    • kill 该pid的值
  • 终止多个gedit 编辑器
    • killall gedit
  • 强制杀掉一个终端
    • kill -9 pid

# pstree 查看进程树

基本语法

  • pstree [选项]

选项

  • -p 显示进程的PID
  • -u 显示进程所属的用户
[root@hadoop100 home]# pstree -p
init(1)─┬─ManagementAgent(2002)─┬─{ManagementAgen}(2019)
        │                       └─{ManagementAgen}(2021)
        ├─NetworkManager(2342)
        ├─VGAuthService(1878)
        ├─abrtd(2785)
        ├─acpid(2457)
        ├─atd(2812)
        ├─auditd(2222)───{auditd}(2223)
        ├─automount(2546)─┬─{automount}(2547)
        │                 ├─{automount}(2548)
        │                 ├─{automount}(2551)
....
[root@hadoop100 home]# pstree -u
init─┬─ManagementAgent───2*[{ManagementAgen}]
     ├─NetworkManager
     ├─VGAuthService
     ├─abrtd
     ├─acpid
     ├─atd
     ├─auditd───{auditd}
....
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# top 动态监控进程

基本语法

  • top [选项]

选项

  • -d 秒数 指定top命令每隔几秒更新,默认3s
  • -i 不显示任务号闲置或者僵死的进程
  • -p 通过指定监控进程ID的进程

交互操作:在输入top后,可以输入如下命令

  • P 以CPU使用率排序,默认
  • M 以内存使用率排序
  • N 以PID排序
  • q 退出top

应用实例

  • 监视特定用户
    • top
    • 输入u 回车,再输入用户名
top - 21:30:15 up 16 days,  1:34,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 237 total,   1 running, 236 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2038376k total,   906052k used,  1132324k free,   153668k buffers
Swap:  2097148k total,        0k used,  2097148k free,   469900k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                
1 root      20   0 19344 1552 1232 S  0.0  0.1   0:01.61 init                    
2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd  
...

说明:
第一行:任务队列信息
21:30:15			系统当前时间
up 16 days, 1:34 	系统的运行时间,已经运行1天13小时32分钟
3 users				当前登陆了3个用户
load average:0.00,0.01,0.05 系统在之前1分钟,5分钟,15分钟的平均负载,一般认为小于1,负载较小,如果大于1,系统超出负荷

第二行:进程信息
Tasks:237total 	    系统中的进程总数
1 running			 正在运行的进程数
236 sleeping	     睡眠的进程
0 stopped			 正在停止的进程
0 zombie			 僵尸进程,如果不是0,需要手动检查僵尸进程

第三行:cpu信息
0.0%us		 		用户模式占用的CPU百分比
0.1%sy				系统模式占用的cpu百分比
0.0%ni				改变过优先级的用户进程占用的cpu百分比
99.9%id				空闲cpu的百分比
0.0%hi				硬中断请求服务占用的cpu百分比
0.0%si				软终端请求服务占用的cpu百分比
0.0%st				st steal time 虚拟时间百分比,当有虚拟机的时候,虚拟cpu等待实际cpu的时间百分比

第四行:物理内存
2038376k total		物理内存总量,KB
906052k used		已使用物理内存的数量
1132324k free		空闲的物理内存数量
153668k buffers 	作为缓冲的内存数据量

第五层:交换分区信息
2097148k total 		虚拟内存总大小
0k used				已使用的交互分区大小
2097148k free		空闲的交换分区大小
469900k cached		作为缓冲的交互分区大小
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  • 终止指定的进程
    • top
    • 输入k后回车,再输入要结束的进程ID号
  • 指定系统状态更新时间(默认是3秒,设置为10秒)
    • top -d 10

# 关于安装htop

1.下载
[root@hadoop100 home]# wget http://sourceforge.net/projects/htop/files/htop/1.0.2/htop-1.0.2.tar.gz
2.解压安装
tar -xvf htop-1.0.2.tar.gz
切换到对应的目录下
cd htop-1.0.2
./configure && make && make install
3.报错:configure: error: missing libraries: libncurses
yum install ncurses-devel
4.重新安装
[root@hadoop100 htop-1.0.2]# ./configure && make && make install
1
2
3
4
5
6
7
8
9
10
11
Last Updated: 2022/03/20, 10:04:55
网络配置
服务管理

← 网络配置 服务管理→

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式