二十、Linux进程管理(重点)
- 基本介绍
(1)、在Linux中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个id号
(2)、每一个进程都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器
(3)、每个进程都可以以两种方式存在。前台与后台,所谓前台进程就是用户目前屏幕上进行操作的。后台进程是实际在操作,但屏幕上无法看到的进程
(4)、一般系统的服务器都是以后台进程的方式存在,而且都会常驻在系统中,知道关机
才结束。
- 基本介绍:
ps命令是用来查看目前系统中,有哪些正在执行,以及它们的执行情况。
可以不加任何参数
ps-a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
一般使用 ps -aux |more :查看的信息全面
- 实例:
要求:以全格式显示当前所有的进程,查看进程的父进程
ps -ef |more
ps -ef 是以全格式显示当前所有进程
-e 显示所有进程, -f全格式
ps -ef |grep XXX --查看某个程序的父进程
UID:用户ID
PID:进程ID
PPID:父进程ID
C:Cpu用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高。
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
2、终止进程kill和killall
- 介绍
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令完成
- 基本语法:
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,在系统因负载过大而变得很慢时很有用)
- 常用选项:
-9:表示强迫进程立即停止
- 实例:
(1)、踢掉某个非法登录用户
root登录,ps -aux |grep sshd 查看进程号
kill 4010
(2)、终止远程登录服务sshd,在适当的时候再次启用sshd服务
ps -aux |grep sshd 查看sshd进程号
kill 3908
(3)、终止多个gedit编辑器【killall,通过进程名称终止】
killall gedit
(4)、强制杀掉一个终端
ps -aux |grep bash 查看终端进程号
kill -9 4090
3、查看进程树pstree
- 基本语法:
pstree [选项] (可以更加直观的来看进程信息)
- 常用选项:
-p:显示进程的PID
-u:显示进程的所属用户
- 实例:
(1)、请以树状的形式显示进程的pid
pstree -p
(2)、请以树状的形式显示进程的用户id
pstree -u
二、服务service管理
- 介绍:
服务(service)本质就是进程,但是是运行在后台的。通常都会监听某个端口,等待其他程序的请求,例如(mysql、sshd,防火墙等),因此又称为守护进程,在Linux中非常重要。
- service 管理指令:
service 服务名 start |stop|restart|reload|status
CentOS 7后,不再使用service,而是systemctl
- 实例:
查看当前防火墙状态,关闭防火墙,重启防火墙
service iptables status
service iptables start
service iptables stop
- 细节讨论:
(1)、关闭或启用防火墙后,立即生效[Telnet测试某个端口]
Telnet指令查看linux的某个端口是否在监听,并且可以访问
在dos窗口,telnet 192.168.84.130 22
(2)、这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置
(3)、如果设置某个服务自启动或关闭永久生效,要使用chkconfig指令
1、查看服务名
方式一:setup--系统服务,选中服务按空格可以取消启动
方式二:ls -l /etc/init.d --列出系统有哪些服务
- 服务的运行级别
- 思考题:
如果不小心将默认的运行级别设置成0或者7,怎么处理?
进入单用户,修改
2、chconfig指令
- 介绍:
通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭
- 基本语法:
(1)、查看服务:chkconfig --list|grep XXX
chkconfig --list
chkconfig --list|grep sshd
(2)、chkconfig 服务名 --list
chkconfig iptables --list
(3)、chkconfig --level 5 服务名 on/off --修改某个服务在某个级别下自启动
将sshd服务在运行级别5的情况下不要自启动
chkconfig --level 5 sshd off
- 实例:
(1)请显示当前系统所有服务的各个运行级别的运行状态
chkconfig --list
(2)、请查看sshd服务的运行情况
service sshd status
(3)、当运行级别为5时,关闭防火墙
chkconfig --level 5 iptables off
(4)、在所有运行级别下运行开启防火墙
chkconfig iptables on
- 使用细节:
chkconfig重新设置服务后,自启动或关闭,需要重启reboot才生效
3、动态监控进程
- 介绍
top与ps命令相似,它们都用来显示正在执行的进程。top与ps最大的不同之处在于top在
执行一段时间可以更新正在运行的进程
- 基本语法:
top [选项]
- 选项说明:
- 交互操作说明:
- 实例:
(1)、监视特定用户
top 回车
输入u,再输入用户名
(2)、终止指定进程
top 回车
输入k,输入要终止进程号
(3)、执行系统状态更新的时间(每隔10秒自动更新, 默认是3秒)
top -d 10
4、监控网络状态
查看系统网络情况netstat(重要)
- 基本语法:
netstat [选项]
netstat -anp
- 选项说明:
-an :按一定顺序排序输出
-p:显示哪个进程在调用
- 实例:
(1)、查看系统所有的网络服务
netstat -anp |more
(2)、查看服务名为sshd的服务信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?