您的位置:首页 > 运维架构 > Linux

Linux系统下的进程管理

2020-07-20 11:55 218 查看

Linux下的进程管理

进程定义

  • 定义

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

      进程是资源调用的最小单位
    1. 线程是进程的最小单位
  • 进程的状态

      R(TASK_RUNNING)      #可执行态(running,ready)
    1. S(TASK_INTRRUPTABLE)   #可唤醒休眠
    2. D(TASK_UNINTRRUPABLE)  #不可唤醒休眠
    3. T(TASK_STOP)        #暂停状态
    4. Z(EXIT_ZOMBIE)       #僵死态

进程的查看方式

  • gnome-system-monitor         #图形进程查看工具

  • ps                  #进程查看
    ##进程查看有三种风格unix,bsd,GNU

    命令 作用
    ps a 查看与终端相关的进程(当用户登录系统后产生的进程都是带终端的)
    ps x 与终端无关的进程
    ps u 用户信息递归的查看方式
    ps f 显示进程的层级关系
    ps o 显示指定参数(user,pid,tty,comm,nice,stat,pri,%cpu,ppid)
    ps -e 显示所有进程
    ps -f 显示信息的完整格式
    ps -H 显示进程的层级结构
    ps -o 显示指定参数
    ps --sort= 以一定方式的正序显示
  • ps -ax #显示的信息如下
    [1] PID:进程id
    [2] TTY:进程用到的终端
    [3] STAT:进程状态
    [4] TIME:进程占用cpu时长
    [5] COMMAND:进程名称

  • ps -aux#显示信息如下

    [1] USER:进程所有人
    [2] PID:进程id
    [3] %CPU:进程所用cpu用量
    [4] %MEM:进程所用内存用量
    [5] VSZ:进程所用虚拟内存用量
    [6] RSS:进程常驻内存中的数据大小
    [8] TTY:进程所用到的终端
    [9] STAT:进程状态
    [10] START:进程所用时长
    [11] COMMAND:进程名称

  • pgrep          #进程过滤

    参数 作用
    pgrep -u uid 显示指定用户进程
    pgrep -U USER 显示指定用户进程
    pgrep -t tty 显示指定终端进程
    pgrep -l 显示进程名称
    pgrep -a 显示进程完整名称
    pgrep -P pid 显示该进程下的子进程id
  • pidod vim        #查看vim进程id

  • top            #动态进程查看
    ##top中的内容显示

    图片内容 表示信息
    14:48:14 系统时间
    up 1:06 运行时长
    load average:0.36,0.39,0.22 三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟)
    397 total 任务总量
    4 running 正在运行的个数
    393 sleeping 休眠进程的数量
    0 stopped 被暂停进程数量
    0 zombie 僵死进程的数量
    18.2 us 用户空间
    3.0 sy 内核空间
    0.0 ni nice值调整时间
    76.8 id 空闲时间
    0.0 wa 等待io时间
    1.7 hi 处理硬件中断时间
    0.3 si 处理软件中断时间
    0.0 st 被偷走的时间
    MiB MEM:1806.1total 内存分区的总量
    100.4free 内存分区的空闲
    1074.7 used 被占用的总量
    631.0 buff/cache 缓存
    MiB Swap 交换分区用量(后面的数据和内存分区的表示是一样的)

    ##top命令的参数

  • top -d 数字                #指定刷新频率(默认是3秒)

  • top -b                  #以批次的方式显示

  • top -n 数字               #指定显示批次的数量

##top命令内部的参数

top命令内部指令 作用
P 根据CPU使用的百分比进行排序
M 根据内存排序
T 累计占用CPU时间排序
l 关闭/开启uptime信息
t 关闭/开启cpu&task
s 指定刷新频率
k 对进程进行操作
u 查看指定用户进程

进程优先级

作用:系统是多任务多用的操作模式,任务的重要性是有区分的,通过优先级来确定任务的重要性
“优先级”(PRI越小,优先级优先级就越高)
范围 :0-139
内核自控优先级范围:0-99
用户可控优先级:100-139
nice:-20~19

  • renice -n nice pid                 #更改指定进程的优先级

  • nice -n nice 打开一个进程的命令           #指定优先级打开进程

进程状态显示

显示 意义
S sleeping
< 优先级高
s 顶级进程
T stop进程
N 优先级低
R 正在运行的进程
+ 运行在前台

进程的前后台调用

  • <ctrl>+<z>        #把占用shell的进程打入后台挂起(不可以对后台的进程进行操作)

  • bg               #把后台挂起的进程运行起来

  • fg                #把后台进程调回前台

  • &               #将进程打入后台运行(可以对后台的进程进行操作)

  • jobs             #查看当前shell中在后台的所有进程

进程信息号

  • 进程信号:

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

      kill -进程信号 pid #对进程号为pid的进程进行操作

    1. killall -进程信号 进程名字 #对同一类的进程进行操作

    2. pkill -进程信号 进程条件 #对某一进程条件进行操作

systemd守护进程

  • systemctl命令的用法

    命令 作用
    systemctl strat 开启服务
    systemctl stop 关闭服务
    systemctl status 查看服务的状态
    systemctl reload 重新加载服务
    systemctl restart 重新启动服务
    systemctl enable 设定开机启动
    systemctl enable --now 设定服务开机启动并当前开启服务
    systemctl disable 设定服务开机不启动
    systemctl list-units 查看系统所有服务当前状态
    systemctl list-unit-files 查看服务开机状态
    systemctl list-dependencies 列出服务依赖性
    systemctl mask 冻结服务
    systemctl set-default 模式 设定系统运行模式(无图形模式/有图形模式)
    systemctl get-default 查看系统运行模式(runlevel查看系统运行的模式数字化显示)

系统中的登录审计

  • w         ##显示正在登陆系统的账号
             ##该信息储存在/var/run/utmp

  • last       ##显示登录成功现在已经退出的
            ##显示的信息放在/var/log/wtmp

  • lastb        ##显示试图登录但未成功的
             ##显示的信息放在/var/log/btmp

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: