Linux实操篇-进程管理(重点)

文章目录

  • 1 进程的基本介绍
  • 2 显示系统执行的进程
    • 2.1 基本介绍
    • 2.2 ps 详解
    • 2.3 应用实例
  • 3 终止线程 kill 和 killall
    • 3.1 介绍
    • 3.2 基本语法
    • 3.3 常用选项
    • 3.4 最佳实践
  • 4 查看进程树 pstree
    • 4.1 基本语法
    • 4.2 常用选项
    • 4.3 应用实例
  • 5 服务管理
    • 5.1 基本介绍
    • 5.2 service 管理指令
    • 5.3 service 管理指令案例
    • 5.4 查看服务名
    • 5.5 服务的运行级别 (runlevel)
    • 5.6 CentOS7 后运行级别说明
    • 5.7 chkconfig 指令
    • 5.8 systemctl 管理指令
    • 5.9 systemctl 设置服务的自启动状态
    • 5.10 应用案例
    • 5.11 细节讨论
    • 5.12 打开或关闭指定端口
    • 5.13 firewall 指令
    • 5.14 应用案例
  • 6 动态监控进程
    • 6.1 介绍
    • 6.2 基本语法
    • 6.3 选项说明
    • 6.4 交互操作说明
    • 6.5 应用实例
  • 7 监控网络状态
    • 7.1 查看系统网络情况 netstat
    • 7.2 检测主机连接命令 ping


1 进程的基本介绍

==> 视频链接

  1. 在 Linux 中,每个执行的程序都成为一个进程,每一个进程都分配一个 ID 号 (pid ,进程号)
  2. 每个进程都可能以两种方式存在的。前台后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
  3. 一般系统的服务器都是以后台进程方式存在,而且都会常驻在系统中。直到关机才结束
  4. 示意图

Linux实操篇-进程管理(重点)_第1张图片

2 显示系统执行的进程

2.1 基本介绍

  • ps 命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数

Linux实操篇-进程管理(重点)_第2张图片

  • ps 显示的信息选项:
字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消 CPU 时间
CMD 正在执行的命令或进程名
  • ps -a :显示当前终端的所有进程信息
  • ps -u :以用户的格式显示进程信息
  • ps -x :显示后台进程运行的参数

通常是将上述三个参数联合使用,即: ps -aux ,也可以使用分页来方便查看 => ps -axu | more

Linux实操篇-进程管理(重点)_第3张图片

2.2 ps 详解

  1. 指令:ps –aux | grep xxx — 过滤查看指定的进程信息,比如:看看有没有 sshd 服务 => ps –aux | grep sshd

在这里插入图片描述

  1. 指令说明:

    • System V展示风格
    • USER:用户名称
    • PID:进程号
    • %CPU:进程占用CPU的百分比
    • %MEM:进程占用物理内存的百分比
    • VSZ:进程占用的虚拟内存大小(单位:KB)
    • RSS:进程占用的物理内存大小(单位:KB)
    • TTY:终端名称,缩写
    • STAT:进程状态,其中:
      • S-睡眠
      • s-表示该进程是会话的先导进程
      • N-表示进程拥有比普通 优先级更低 的优先级
      • R-正在运行
      • D-短期等待
      • Z-僵死进程
      • T-被跟踪或者被停止等等
    • STARTED:进程的启动时间
    • TIME:CPU时间,即进程使用CPU的总时间
    • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

2.3 应用实例

要求:以全格式显示当前所有的进程,查看进程的 父进程 ,比如查看 sshd 的 父进程 信息

  • ps -ef :是以全格式显示当前所有的进程,其中: -e 显示所有进程, -f 全格式

Linux实操篇-进程管理(重点)_第4张图片

  • 对上图参数说明:

    1. 是BSD风格
    2. UID:用户ID
    3. PID:进程ID
    4. PPID:父进程ID
    5. C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运 算, 执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
    6. STIME:进程启动的时间
    7. TTY:完整的终端名称
    8. TIME:CPU时间
    9. CMD:启动进程所用的命令和参数
  • 查看 sshd 的 父进程 信息 指令: ps -ef | grep sshd

在这里插入图片描述

Linux实操篇-进程管理(重点)_第5张图片

3 终止线程 kill 和 killall

3.1 介绍

  • 若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程
  • 使用 kill 命令完成 终止进程 任务

3.2 基本语法

  • kill [] 进程号 :通过进程号杀死/终止进程
  • killall 进程名称 :通过进程名称杀死进程,也支持通配符,该指令 在系统因负载过大而变得很慢时很有用

3.3 常用选项

  • -9 :表示强迫进程立即停止

3.4 最佳实践

  1. 案例1:踢掉某个非法登录用户 kill 进程号,比如:kill 1967

Linux实操篇-进程管理(重点)_第6张图片

Linux实操篇-进程管理(重点)_第7张图片

  1. 案例2:终止远程登录服务 sshd ,在适当的时候再次重启 sshd 服务
(1) kill sshd对应的进程号;  #终止远程登录服务
(2) /bin/systemctl start sshd.service #重启 sshd 服务

Linux实操篇-进程管理(重点)_第8张图片

Linux实操篇-进程管理(重点)_第9张图片

  1. 案例3:终止多个 gedit ,指令 => killall gedit

Linux实操篇-进程管理(重点)_第10张图片

Linux实操篇-进程管理(重点)_第11张图片

  1. 案例4:强制杀掉一个终端,指令 => kill -9 bash对应的进程号

Linux实操篇-进程管理(重点)_第12张图片

Linux实操篇-进程管理(重点)_第13张图片

4 查看进程树 pstree

4.1 基本语法

  • pstree [选项] :可以更加直观的来看进程信息

4.2 常用选项

  • -p :显示进程的 PID
  • -u :显示进程的所属用户

4.3 应用实例

  1. 请以树状的形式显示进程的 pid ,指令:pstree -p

Linux实操篇-进程管理(重点)_第14张图片

  1. 请以树状的形式显示进程的所属用户 ,指令:pstree -u

Linux实操篇-进程管理(重点)_第15张图片

5 服务管理

5.1 基本介绍

  • 服务 (service) 本质就是进程,但是 是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如:mysqld ,sshd ,防火墙 等 ,因此我们又称为守护进程,是 Linux 中非常重要的知识点
  • 原理图

Linux实操篇-进程管理(重点)_第16张图片

5.2 service 管理指令

  1. service 服务名 [start | stop | restart | reload | status]
  2. 在 CentOS7.0 后,很多服务不再使用 service ,而是 systemctl
  3. service 指令管理的服务在 /etc/init.d 查看

Linux实操篇-进程管理(重点)_第17张图片

5.3 service 管理指令案例

  • 请使用 service 指令,查看,关闭,启动 network ,注意:在虚拟系统演示,因为网络连接会关闭
service network status #查看状态
service network stop #关闭
service network start #开启

Linux实操篇-进程管理(重点)_第18张图片

5.4 查看服务名

  • 方式一:使用 setup => 选择系统服务 就可以看到全部

在这里插入图片描述

Linux实操篇-进程管理(重点)_第19张图片

Linux实操篇-进程管理(重点)_第20张图片

Linux实操篇-进程管理(重点)_第21张图片

  • 方式二:/etc/init.d 看到 service 指令管理的服务 ,指令: li -l /etc/init.d/

Linux实操篇-进程管理(重点)_第22张图片

5.5 服务的运行级别 (runlevel)

  • Linux 系统有 7 种运行级别 (runlevel) :常用的是 级别3级别5

    运行级别0 :系统停机状态,系统默认运行级别不能设为 0 ,否则不能正常启动
    运行级别1 :单用户工作状态,root 权限,用于系统维护,禁止远程登录
    运行级别2 :多用户工作状态 (没有 NFS) ,不支持网络
    运行级别3 :完全的多用户状态 (有 NFS) ,无界面,登录后进入控制台命令行默认
    运行级别4 :系统为使用,保留
    运行级别5 :X11 控制台,登录后进入图形 GUI 模式
    运行级别6 :系统正常关闭并重启,默认运行级别不能设为 6 ,否则不能正常启动

  • 开机的流程说明:

在这里插入图片描述

5.6 CentOS7 后运行级别说明

在 CentOS7 以前,在 /etc/inittab 文件中进行设置默认的运行级别, CentOS7 以后进行了简化,如下:

  • 简化指令如下:

    multi-user.target : analogous to runlevel 3
    graphical.target : analogous to runlevel 5

  • 查看当前运行级别:systemctl get-default

  • 设置默认运行级别:systemctl set-default TARGET.target

    • 如设置默认运行级别为:multi-user.target 运行级别3
    • 指令 => systemctl set-default multi-user.target

5.7 chkconfig 指令

  • 基本介绍

    1. 通过 chkconfig 命令可以给服务的各个运行级别设置 自启动/关闭
    2. chkconfig 指令管理的服务在 /etc/init.d 查看
    3. 注意:CentOS7.0 后,很多服务使用 systemctl 管理
  • chkconfig 基本语法

    • 查看服务 chkconfig --list [ | grep xxx]
      Linux实操篇-进程管理(重点)_第23张图片

    • chkconfig 服务名 --list

    • chkconfig --level 5 服务名 on/off 表示在 运行级别5 下设置某服务是否自启动

  • 案例演示:对 network 服务 进行各种操作,比如:把 network 在 运行级别3 ,关闭自启动

chkconfig --level 3 network off #关闭自启动
chkconfig --level 3 network on  #开启自启动

Linux实操篇-进程管理(重点)_第24张图片

  • 使用细节:chkconfig 重新设置服务后自动启动或关闭,需要重启机器 (reboot) 生效

5.8 systemctl 管理指令

==> 视频链接

  • 基本语法:systemctl [start | stop | restart | status] 服务名
  • systemctl 指令管理的服务在 /usr/lib/systemd/system 查看 ,指令:ls -l /usr/lib/systemd/system

5.9 systemctl 设置服务的自启动状态

  • systemctl list-unit-files [ | grep 服务名] :查看服务开机启动状态,grep 可以进行过滤
  • systemctl enable 服务名 :设置服务开机启动 (对 运行级别3和5 同时生效)
  • systemctl disable 服务名 :关闭服务开机启动 (对 运行级别3和5 同时生效)
  • systemctl is-enabled 服务名 :查询某个服务是否是自启动的

5.10 应用案例

  • 查看当前防火墙的状况,关闭防火墙和重启防火墙 (firewalld.service)
systemctl ststus firewalld #查看当前防火墙的状况
systemctl stop firewalld   #关闭防火墙
systemctl start firewalld  #开启防火墙

在这里插入图片描述

5.11 细节讨论

  1. 关闭或启用防火墙后,立即生效【telnet 测试 某个端口即可】,温馨提示,如果 telnet 指令用不了 => 解决方案:参考文章

Linux实操篇-进程管理(重点)_第25张图片

Linux实操篇-进程管理(重点)_第26张图片

  1. 这种方式只是临时生效,当重启系统后,还是回归到以前对服务的设置
  2. 如果希望设置某个服务自启动或关闭 永久生效,要使用 systemctl [enable | disable] 服务名

5.12 打开或关闭指定端口

  • 在真正的生成环境,往往需要将防火墙打开,但问题来了,如果我们把防火墙打开了,那么外部请求数据包就不能跟服务监听端口通讯
  • 这时需要打开指定的端口,比如:80,22,8080 等,这个又怎么做呢?

Linux实操篇-进程管理(重点)_第27张图片

5.13 firewall 指令

  • 打开端口:firewall-cmd --permanent --add-port=端口号/协议
  • 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
  • 重新载入,才能生效:firewall-cmd --reload
  • 查询端口是否开放:firewall-cmd --query-port=端口/协议

5.14 应用案例

  1. 启用防火墙,测试 111 端口是否能 telnet ,答案:目前不行

Linux实操篇-进程管理(重点)_第28张图片

在这里插入图片描述

  1. 开放 111 端口
firewall-cmd --permanent --add-port=111/tcp #(1)打开端口
firewall-cmd --reload #(2)重新载入 , 才能生效

Linux实操篇-进程管理(重点)_第29张图片

Linux实操篇-进程管理(重点)_第30张图片

  1. 再次关闭 111 端口
firewall-cmd --permanent --remove-port=111/tcp #(1)关闭端口
firewall-cmd --reload #(2)重新载入 , 才能生效

Linux实操篇-进程管理(重点)_第31张图片

6 动态监控进程

6.1 介绍

  • top 与 ps 命令很相似,它们都是用来显示正在运行的进程
  • top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的进程

6.2 基本语法

  • top [选项]

Linux实操篇-进程管理(重点)_第32张图片

6.3 选项说明

选项 功能
-d 秒数 指定 top 命令每隔几秒更新,默认是 3 秒,如:top -d 5
-i 使 top 不显示任何闲置或者僵死进程
-p 通过指定监控进程ID来仅仅监控某个进程的状态

6.4 交互操作说明

操作 功能
P 以CPU使用率排序,默认就是此项
M 以内存的使用率排序
N 以 PID 排序
q 退出 top

6.5 应用实例

  • 案例1 :监视特定用户,比如监控 tom 用户

    1. 输入 top 命令,按回车,查看执行的进程
    2. 然后输入 “u” 回车 ,再输入用户名,即可

Linux实操篇-进程管理(重点)_第33张图片

  • 案例2 :终止指定的进程,比如 结束 tom 登录

    1. 输入 top 命令,按回车,查看执行的进程
    2. 然后输入 “k” 回车 ,再输入要结束的进程 ID 号

Linux实操篇-进程管理(重点)_第34张图片
Linux实操篇-进程管理(重点)_第35张图片

  • 案例3 :指定系统状态更新的时间 (每隔 10 秒自动更新) ,默认是 3 秒,指令: top -d 10

7 监控网络状态

7.1 查看系统网络情况 netstat

  • 基本语法:netstat [选项]

  • 选项说明:

    -an :按一定顺序排列输出
    -p :显示哪个进程在调用

Linux实操篇-进程管理(重点)_第36张图片

Linux实操篇-进程管理(重点)_第37张图片

  • 应用案例:

    请查看服务名为 sshd 的服务的信息 指令 => netstat -anp | grep sshd

Linux实操篇-进程管理(重点)_第38张图片

7.2 检测主机连接命令 ping

  • 是一种网络检测工具,它主要是用来检测远程主机是否正常,或是两部主机间的网线或网卡是否故障
  • 如:ping 对方ip地址

你可能感兴趣的:(Linux,linux,运维,服务器)