Linux系统中的进程管理

一、系统进程管理

1、进程的含义

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

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

2、查看系统的进程

2.1 图形模式

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

    

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
        在这里插入图片描述
(2)ps -A
           在这里插入图片描述
(3) ps -d
            在这里插入图片描述
(4) ps X
在这里插入图片描述
(5) ps -u
在这里插入图片描述

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)
         在这里插入图片描述
(2)tty为所处环境,stat为所处状态
在这里插入图片描述

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
        在这里插入图片描述
(2)ps -A --sort=%mem -o %mem
    在这里插入图片描述
(3)面试题:memory +5 pid 显示内存当中pid的前五个
    命令: ps -A --sort=-%mem -o pid |head -n 6 | tail -n 5
    在这里插入图片描述

2.6 stat显示的信息含义

ps -o comm,stat

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

           在这里插入图片描述

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
           在这里插入图片描述
    (2) renice -n -5 2115 改变2115进程的优先级为10

     在这里插入图片描述

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

4、进程的前后台调用

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

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

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

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 执行单个删除进程命令
         在这里插入图片描述
(2) killall -信号 进程名字 批量执行
      在这里插入图片描述
(3)pkill -9 -u student 执行指定用户
      在这里插入图片描述

6、进程的动态监控

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

在这里插入图片描述
(1)按下 “1
在这里插入图片描述
(2)按下“s
在这里插入图片描述
(3)按下“c
在这里插入图片描述
(4)按下“m”
在这里插入图片描述
(5)按下“h”
在这里插入图片描述
(6)按下“u”
在这里插入图片描述
(7)按下**“k**”
在这里插入图片描述
在这里插入图片描述

7、控制服务

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

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

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

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

    虚拟机中:
     rm -rf ~/.ssh/
     nm-connection-editor ## 设置ip
     ssh root@172.xxx.xxx.xxx -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 查看服务状态
    在这里插入图片描述
    2) systemctl stop sshd 关闭服务 systemctl start sshd 开启服务
    在这里插入图片描述
    在这里插入图片描述
    (3) systemctl list-units 列出所有已经开启的服务器状态
    在这里插入图片描述
    (4) systemctl list-unit-files 列出所有服务器开机启动的状态
          在这里插入图片描述
    (5) systemctl list-dependencies 列出所有服务的依赖
         在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值