七.Linux进程管理

本文围绕Linux系统展开,介绍了进程的基本概念,包括前台与后台进程。详细讲解了查看进程的ps、pstree、top等命令,以及终止进程的kill和killall命令。还阐述了服务管理,如service和systemctl指令,服务自启配置,运行级别设置,最后介绍了查看系统网络情况的netstat命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.进程的基本介绍

1)在 LINUX 中, 每个执行的程序(代码) 都称为一个进程。 每一个进程都分配一个 ID 号。

2)每一个进程, 都会对应一个父进程, 而这个父进程可以复制多个子进程。 例如 www 服务器。

3)每个进程都可能以两种方式存在的。 前台与后台, 所谓前台进程就是用户目前的屏幕上可以进行操作的。 后台进程则是实际在操作, 但由于屏幕上无法看到的进程, 通常使用后台方式执行。

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

2.显示系统执行的进程-ps

2.1 基本介绍

基本语法:

ps aux | grep xxx (功能描述:查看系统中所有进程)

ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。

  • 可以不加任何参数
  • 一般来说使用的参数是 ps -aux
参数作用
ps -a显示当前终端所有进程
ps -u以用户的格式显示信息
ps -x显示后天进程运行的参数

2.2 ps -aux指令:

ps -aux | more (功能描述:分页查看系统进程信息)
在这里插入图片描述

ps指令详解

1)指令:

ps –aux | grep xxx

2)进程信息说明

•System V 展示风格

•USER: 用户名称

•PID: 进程号

•%CPU: 进程占用 CPU 的百分比

•%MEM: 进程占用物理内存的百分比

•VSZ: 进程占用的虚拟内存大小(单位: KB)

•RSS: 进程占用的物理内存大小(单位: KB)

•TT: 终端名称,缩写 .

•STAT: 进程状态, 其中

  • S-睡眠, s-表示该进程是会话的先导进程,
  • N-表示进程拥有比普通优先级更低的优先级,
  • R-正在运行,
  • D-短期等待,
  • Z-僵死进程,
  • T-被跟踪或者被停止等等

•STARTED: 进程的启动时间

•TIME: CPU 时间, 即进程使用 CPU 的总时间

•COMMAND: 启动进程所用的命令和参数, 如果过长会被截断显示

2.3 ps -ef 指令

ps -ef 以全格式显示当前所有的进程, 查看进程的父进程
在这里插入图片描述

ps -ef | grep xxx

•-e 显示所有进程。
•-f 全格式
•UID: 用户 ID
•PID: 进程 ID
•PPID: 父进程 ID
•C: CPU 用于计算执行优先级的因子。 数值越大, 表明进程是 CPU 密集型运算, 执行优先级会降低; 数值越小, 表明进程是 I/O 密集型运算, 执行优先级会提高
•STIME: 进程启动的时间
•TTY: 完整的终端名称,即该进程是在哪个终端中运行的
- tty1-tty7代表本地控制台终端;tty1-tty6是本地的字符界面终端;tty7是图形终端;pts/0-255代表虚拟终端
•TIME: CPU 时间
•CMD: 启动进程所用的命令和参数

经验技巧

  • 如果想查看进程的CPU占用率和内存占用率,可以使用aux;
  • 如果想查看进程的父进程ID可以使用ef;

思考题, 如果我们希望查看 sshd 进程的父进程号是多少, 应该怎样查询 ?

在这里插入图片描述

3.终止进程-kill \ killall

1.介绍:
若是某个进程执行一半需要停止时, 或是已消了很大的系统资源时, 此时可以考虑停止该进程。使用 kill 命令来完成此项任务。

2.基本语法:

kill [选项] 进程号(功能描述: 通过进程号杀死进程)

killall 进程名称 (功能描述: 通过进程名称杀死进程, 也支持通配符, 这在系统因负载过大而变得很慢时很有用)

3.常用选项:

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

4.最佳实践:

案例 1: 踢掉某个非法登录用户
在这里插入图片描述

案例 2: 终止远程登录服务 sshd, 在适当时候再次重启 sshd 服务
在这里插入图片描述
案例 3: 终止多个 gedit 编辑器 【killall , 通过进程名称来终止进程】

案例 4: 强制杀掉一个终端
kill -9 4099

4.查看进程树-pstree

1.基本语法:

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

2.常用选项:

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

3.应用实例:

案例 1: 请你树状的形式显示进程的 pid

  • pstree -p

在这里插入图片描述
案例 2: 请你树状的形式进程的用户 id

  • pstree -u

在这里插入图片描述

5.服务管理-service / systemctl

1.介绍:后台进程/守护进程

服务(service) 本质就是进程, 但是是运行在后台的, 通常都会监听某个端口等待其它程序的请求, 比如(mysql , sshd 防火墙等), 因此我们又称为守护进程。 【原理图】

在这里插入图片描述

临时后台服务管理指令:service / systemctl

1)CentOs 6:

  • service 服务名 start (功能描述:开启服务)
  • service 服务名 stop (功能描述:关闭服务)
  • service 服务名 restart (功能描述:重新启动服务)
  • service 服务名 status (功能描述:查看服务状态)

2)在 CentOS7.0 后 不再使用 service ,而是systemctl(system control)

  • systemctl start 服务名 (功能描述:开启服务)
  • systemctl stop 服务名 (功能描述:关闭服务)
  • systemctl restart 服务名 (功能描述:重新启动服务)
  • systemctl status 服务名 (功能描述:查看服务状态)
  • systemctl --type service (功能描述:查看正在运行的服务)

3.centos6使用案例:

查看当前防火墙的状况, 关闭防火墙和重启防火墙

在这里插入图片描述
可以看到:linux的22号端口是打开的

4.centos7使用案例

(1)查看网络服务的状态

  • [root@hadoop100 桌面]#systemctl status network

(2)停止网络服务

  • [root@hadoop100 桌面]#systemctl stop network

(3)启动网络服务

  • [root@hadoop100 桌面]#systemctl start network

(4)重启网络服务

  • [root@hadoop100 桌面]#systemctl restart network

4.细节讨论:

1)关闭或者启用防火墙后,立即生效。 [可以在dos下使用telnet 测试某个端口是否打开]

telnet ip地址 端口号

注意:Windows需要启用TelNet客户端服务,参考博客
https://blog.youkuaiyun.com/F_y_C/article/details/80582177

2)这种方式只是临时生效, 当重启系统后, 还是回归以前对服务的设置。

3)如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令

设置后台服务的自启配置:chkconfig/systemctl

1.基本语法(CentOS 6)

  • chkconfig (功能描述:查看所有服务器自启配置)
  • chkconfig 服务名 off (功能描述:关掉指定服务的自动启动)
  • chkconfig 服务名 on (功能描述:开启指定服务的自动启动)
  • chkconfig 服务名 --list (功能描述:查看服务开机启动状态)

2.基本语法(CentOS 7)

  • systemctl list-unit-files (功能描述:查看所有服务器自启配置)
  • systemctl disable 服务名 (功能描述:关掉指定服务的自动启动)
  • systemctl enable 服务名 (功能描述:开启指定服务的自动启动)
  • systemctl is-enabled 服务名(功能描述:查看服务开机启动状态)

3.案例实操
(1)关闭防火墙的自动启动

[root@hadoop100 桌面]#systemctl disable firewalld

(2)开启防火墙的自动启动

[root@hadoop100 桌面]#systemctl enable firewalld

(3)查看防火墙状态

[root@hadoop100桌面]#systemctl is-enabled firewalld

6.查看服务名

方式 1: 使用 setup -> 系统服务 就可以看到。
在这里插入图片描述
方式 2: /etc/init.d/服务名称

在这里插入图片描述

7.服务的运行级别(runlevel)

1.关于系统的运行级别

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

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

2)查看或者修改默认级别: vi /etc/inittab

2.开机流程

开机
BIOC
/boot
init进程1
运行级别
运行级别对应服务

BIOS:运行开机后自检程序和系统自启动程序

/boot:运行系统引导文件

3.服务的运行级别

每个服务都会设置在各个运行级别下是否自启动。服务的运行级别的查看与修改。使用chkconfig 指令。

4.chkconfig 指令

1)介绍

通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭

2)基本语法

  • a)查看服务 chkconfig --list|grep xxx
  • b)chkconfig 服务名 --list
  • c)chkconfig --level 5 服务名 on/off
    在这里插入图片描述
    在这里插入图片描述

3)应用实例:

  1. 案例 1: 请显示当前系统所有服务的各个运行级别的运行状态
    bash> chkconfig --list
  2. 案例 2 : 请查看 sshd 服务的运行状态
    bash> service sshd status
  3. 案例 3: 将 sshd 服务在运行级别 5 下设置为不自动启动, 看看有什么效果?
    bash> chkconfig --level 5 sshd off
  4. 案例 4: 当运行级别为 5 时, 关闭防火墙。
    bash> chkconfig --level 5 iptables off
  5. 案例 5: 在所有运行级别下, 关闭防火墙
    bash> chkconfig iptables off
  6. 案例 6: 在所有运行级别下, 开启防火墙
    bash> chkconfig iptables on

4)使用细节

  • chkconfig 重新设置服务后自启动或关闭, 需要重启机器 reboot 才能生效.

7.动态监控进程

1.介绍:

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

2.基本语法:

top [选项]

3.选项说明

选项功能
-d秒数 指定top命令每隔几秒更新。 默认是3秒在top命令的交互模式当中可以执行的命令
-i使top不显示任何闲置或者僵死进程。
-p通过指定监控进程ID,来仅仅监控某个进程的状态。

4.top命令下的交互操作说明:

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

5.应用实例

案例 1.监视特定用户

  • top: 输入此命令, 按回车键, 查看执行的进程。
  • u: 然后输入“u” 回车, 再输入用户名, 即可
    在这里插入图片描述

案例 2: 终止指定的进程。

  • top: 输入此命令, 按回车键, 查看执行的进程。
  • k: 然后输入“k” 回车, 再输入要结束的进程 ID 号

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

bash> top -d 10

8.*查看系统网络情况-netstat

1.基本语法

netstat [选项]

netstat -nltp | grep *** (功能描述:查看网络端口号占用情况)

netstat -anp | more (功能描述:查看该进程网络信息)

2.选项说明

  • -an 按一定顺序排列输出
  • -n 拒绝显示别名,能显示数字的全部转化成数字
  • -l 仅列出有在listen(监听)的服务状态
  • -p 显示哪个进程在调用

3.应用案例

1)查看系统所有的网络服务
在这里插入图片描述

2)请查看服务名为 sshd 的服务的信息。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值