Linux系统中的进程管理

文章目录

一、系统进程管理

1、进程的含义
2、查看系统的进程
   2.1 图形模式
   2.2 命令模式
   2.3 常用ps组合
   2.4显示进程指定信息
   2.5 进程排序
   2.6 stat显示的信息含义
3、进程的优先级
   3.1改变进程的优先级
4、进程的前后台调用
   4.1 前后台调用的常用命令
5、kill控制进程
   5.1 常用信号等级
   5.2 kill的用法
6、进程的动态监控
   6.1 动态监控命令
   6.2 top监控
7、控制服务
   7.1 进程控制命令

一、系统进程管理

1、进程的含义

  • 程序正在运行的状态为进程 ,也就是cpu未完成的工作,程序并不是进程

前台运行 | 占CPU、内存资源,运行可见
后台运行 | 不争抢CPU、内存资源,系统资源闲置时运行,运行不可见,只显示运行结果
后台暂停 | 运行无条件,暂时停止后台进程

2、查看系统的进程

2.1 图形模式

gnome - system - monitor | 图形界面查看进程

Linux系统中的进程管理    Linux系统中的进程管理

2.2 命令模式

命令 含义
ps 自己所在的shell里面运行的进程
ps a 在shell环境中中运行的所有进程,包括shell的环境bash信息
ps -a 在shell环境当中运行的所有进程,不包括shell环境本身信息bash
ps -A 系统当中所有的进程
ps -d 与A类似 ,没有允许环境(shell)
ps -u 显示进程用户信息
ps x 列出系统中所有运行包含在设备终端tty输出的进程
ps -f 显示父级进程以及子进程
ps -e 显示进程的扩展信息(系统资源),与-A 类似

(1)psps aps -a
Linux系统中的进程管理        Linux系统中的进程管理
(2)ps -A
Linux系统中的进程管理           Linux系统中的进程管理
(3) ps -d
Linux系统中的进程管理           Linux系统中的进程管理 Linux系统中的进程管理
(4) ps X
Linux系统中的进程管理
(5) ps -u
Linux系统中的进程管理

2.3 常用ps组合

命令 含义
ps aux 显示系统当中的所有进程并显示进程用户
ps ef 显示进程的详细信息以及进程的父子关系
ps ax 显示当前系统当中的所有进程
pstree 显示当前系统的进程树
  • 注意:父级进程结束以后子进程不一定会结束,若父级进程被强行关闭 ,余下的子进程叫孤儿进程 ,受系统初始化程序控制。一般由系统的初始化程序来控制其他进程的开始和结束,可以用pstree查看系统的进程树(pstree)systemd为初始化程序,是所有程序的父级程序,不会自己关闭结束自己,只有关机才可以,或者结束了所有子进程以后,该初始化进程才会被关闭。

2.4显示进程指定信息

ps -o xxx | 显示进程的指定信息

xxx 含义
comm 进程名称
user 进程所有人
group 进程所有组
%cpu 进程cpu使用率
%men 进程内存使用率
pid 进程的id
nice 进程优先级

(1)
Linux系统中的进程管理         Linux系统中的进程管理
(2)tty为所处环境,stat为所处状态
Linux系统中的进程管理

2.5 进程排序

ps ax --sort=要显示的东西

命令 含义
ps ax --sort=%men -o %men 显示mem升序
ps ax --sort=-%men -o %men 显示mem降序
ps ax --sort=%cpu -o %cpu 显示cpu使用率升序
ps ax --sort=-%cpu -o %cpu 显示cpu使用率降序

(1)ps --sort=%cpups -A --sort=%cpu
Linux系统中的进程管理        Linux系统中的进程管理
(2)ps -A --sort=%mem -o %mem
Linux系统中的进程管理    Linux系统中的进程管理
(3)面试题:memory +5 pid 显示内存当中pid的前五个
    命令: ps -A --sort=-%mem -o pid |head -n 6 | tail -n 5
    Linux系统中的进程管理

2.6 stat显示的信息含义

ps -o comm,stat

字符 含义
S 进程状态
s 没有父进程,*进程
l 在内存当中有锁定空间(进程结束之前不会被系统回收)
+ 正在前台运行的进程
N 表示优先级低
< 表示优先级高

Linux系统中的进程管理           Linux系统中的进程管理

3、进程的优先级

ps ax -o pid,nice,comm | 优先级的查看 (进程的优先级范围: -20~19)

3.1 改变进程的优先级

1. 图形调整进程的优先级,直接在进程的图形界面里面调整数字
2. 命令设定进程优先级,直接在shell里面输入命令即可

nice -n 优先级数字 进程名称 | 指定优先级且开启进程

renice -n 优先级数字 进程名称 | 更改已打开进程优先级

  • 例子: 
        nice -n -5 firefox 开启一个优先级为-5的进程firefox
        renice -n 0 firefox的pid 改变一个已经开启的进程firefox 的优先级成0
    (1)nice -n -5 vim 开启vim并且指定该程序的优先级为-5
    Linux系统中的进程管理       Linux系统中的进程管理
    (2) renice -n -5 2115 改变2115进程的优先级为10

Linux系统中的进程管理     Linux系统中的进程管理

  • 进程优先级
    进程优先级范围:
    -20-19

4、进程的前后台调用

4.1 前后台调用的常用命令

命令 含义
jobs 查看被打入环境后台的进程
ctrl+z 把占用终端的进程打入后台
fg+jobsnum 把后台的进程调回前台
bg+jobsnum 把后台暂停的进程运行起来
comm+& 让命令直接运行在后台

(1)先用在desktop主机中输入gedit , 此进程会占用终端,使终端不能使用
Linux系统中的进程管理      Linux系统中的进程管理
(2)直接在shell脚本输入 ctrl+z 打入后台
(3)输入jobs查看被打入后台的进程
(4) fg 数字 将被打入后台的进程调回前台(终端)
(5)bg 数字 将被打入后台的暂停的进程运行起来
(6)使用 comm(名字) &, 让命令直接在后台运行
Linux系统中的进程管理           Linux系统中的进程管理

  • 注意:+表示正在运行 , -表示为次优先; 如果没有+(把一个进程调回前台) , -就会被自动变为+(优先级提高)

5、kill控制进程

5.1 常用信号等级

等级 含义
1 进程重新加载配置
2 删除进程在内存中的数据
3 删除鼠标在内存中的数据
9 强行结束单个进程(不能被阻塞)
15 正常关闭进程(可能会被阻塞)
18 运行暂停的进程
19 暂停某个进程(不能被i阻塞)
20 把进程打入后台(可以被阻塞)
man 7 signal 查看信号详细信息

5.2 kill的用法

kill -信号 进程pid | 执行单个

killall -信号 进程名字 | 批量执行

pkill -信号 -u 用户 | 执行指定用户

(1)kill -9 2276 执行单个删除进程命令
 Linux系统中的进程管理        Linux系统中的进程管理
(2) killall -信号 进程名字 批量执行
Linux系统中的进程管理      Linux系统中的进程管理
(3)pkill -9 -u student 执行指定用户
Linux系统中的进程管理      Linux系统中的进程管理

6、进程的动态监控

6.1 动态监控命令

参数 含义
1(小写l) 显示cpu每个核的负载
s 调整刷新频率
c cpu负载排序
m 内存使用量排序
h 查看帮助
u 查看指定用户进程
k 对指定信号发起进程
q 退出

6.2 top监控

Linux系统中的进程管理
(1)按下 “1
Linux系统中的进程管理
(2)按下“s
Linux系统中的进程管理
(3)按下“c
Linux系统中的进程管理
(4)按下“m”
Linux系统中的进程管理
(5)按下“h”
Linux系统中的进程管理
(6)按下“u”
Linux系统中的进程管理
(7)按下**“k**”
Linux系统中的进程管理
Linux系统中的进程管理

7、控制服务

  • 服务也是进程,是多个进程的集合,对自己没有意义,但对客户有意义;

  • 说明:要区分客户端和服务端,客户端:要分享别人,连接方,服务端:远程的主机,可以共享资源 (前提是安全共享),被连接方。

  • 用什么控制服务?
    系统初始化进程可以对服务器进行相应的控制

  • 当前系统初始化进程是什么?
    (1)systemd 系统初始化进程
    (2)pstree 显示系统中的进程树

    虚拟机中:
     rm -rf ~/.ssh/
     nm-connection-editor ## 设置ip
     ssh [email protected] -X
     cheese 打开某设备
     服务的控制
     systemctl status
     start
     stop

7.1 进程控制命令

命令 含义
systemctl status sshd 查看服务状态
systemctl start sshd 开启服务
systemctl stop sshd 关闭服务
systemctl restart sshd 重启服务
systemctl reload sshd 重新加载服务配置
systemctl enable sshd 设定服务开机启动
systemctl disable sshd 设定服务开机不启动
systemctl list-units 列出已经开启服务当前状态
systemctl list-unit-files 列出所有服务器开机启动的状态
systemctl set-default multi-user.target 设定系统启动级别为无图形模式
systemctl set-default graphical.target 设定系统启动级别为图形模式
  • 所有的服务状态如下: static disable enable masked(一共四种)
    (1)systemctl status sshd 查看服务状态
    Linux系统中的进程管理
    2) systemctl stop sshd 关闭服务 systemctl start sshd 开启服务
    Linux系统中的进程管理
    Linux系统中的进程管理
    (3) systemctl list-units 列出所有已经开启的服务器状态
    Linux系统中的进程管理
    (4) systemctl list-unit-files 列出所有服务器开机启动的状态
    Linux系统中的进程管理      Linux系统中的进程管理
    (5) systemctl list-dependencies 列出所有服务的依赖
    Linux系统中的进程管理     Linux系统中的进程管理