Linux进程管理(重点)
基本介绍:
1、在Linux中每个执行的程序都被称为一个进程,每一个进程都分配一个ID号(pid,进程号)
2、每个进程都可能以两种方式存在:前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的,后台进程则是实际在操作,但是由于屏幕上无法看到的进程,通常使用后台方式执行
3、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才会结束
【ps -aux】-a显示当前终端的所有进程信息 -u以用户的格式显示进程信息 -x显示后台进程运行的参数
USER:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位KB)
RSS:进程占用的物理内存大小(单位KB)
TT:终端名称,缩写
STAT:进程状态,其中S睡眠,s表示该进程是会话的先导进程,N表示进程拥有比普通优先级更低的优先级,R正在运行,D短期等待,Z僵死进程,T被跟踪或被停止等
STARTED:进程启动时间
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
【ps -ef】是以全格式显示当前所有进程 -e显示所有进程,-f全格式
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子,数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程,使用kill指令完成此项任务
【kill 选项 进程号】通过进程号终止进程 -9强制终止进程
【killall 进程名称】通过进程名称终止进程及所有子进程
查看进程树:【pstree 选项】可以更加直观的来查看进程信息 -p:显示进程的PID;-u显示进程的所属用户
服务管理介绍:服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd,防火墙等),因此我们又称为守护进程。(重要)
【service 服务名 选项】 start,stop,restart,reload,status
在CentOS7.0后很多服务不再使用service,而是systemctl
service指令管理的服务在/etc/init.d查看
服务的运行级别7种(常用级别3和级别5):
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS),不支持网络
运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图像GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设6,否则不能正常启动
开机流程说明:开机 -> BIOS -> /boot -> systemd进程1 -> 运行级别 -> 运行级对应的服务
chkconfig介绍:1、通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭;2、chkconfig指令管理的服务在/etc/init.d查看;3、注意CentOS7.0后,很多服务使用systemctl管理
【chkconfig --list】查看服务
【chkconfid --level 5 服务名 on/off】使某服务在级别5中自启动或关闭自启动(重启机器生效)
【systemctl 选项 服务名】 start,stop,restart,status(临时生效,重启失效)
systemctl指令管理的服务在 /usr/lib/systemd/system 查看
systemctl设置服务的自启动状态
1、【systemctl list-unit-files | grep 服务名】查看服务开机启动状态,grep可以进行过滤
2、【systemctl enable 服务名】设置服务开机启动(默认为3和5两个运行级别的启动) (重启仍然有效)
3、【systemctl disable 服务名】关闭服务开机启动 (重启仍然有效)
4、【systemctl is-enabled 服务名】查询某个服务是否自启动
【firewall-cmd --permanent --add-port=端口号/协议】打开端口 【firewall-cmd --permanent --add-port=111/tcp】
【firewall-cmd --permanent --remove-port=端口号/协议】关闭端口
【firewall-cmd --reload】 重新载入 (打开端口/关闭端口都要重新载入才能生效)
【firewall-cmd --query-port=端口/协议】查询端口是否开放
动态监控进程介绍:top和ps命令都是用来显示正在执行的进程,top与ps最大的不同就是,top执行一段时间可以更新正在执行的进程
【top 选项】 -d 秒数,指定top每隔几秒更新一次,默认是3秒;-i top不显示任何闲置或者僵死的进程;-p 指定进程ID来监控某个进程的状态
【top】+【u】+回车+【tom】指定监视tom进程
【top】+【k】+回车+【13594】+【9】 强制关闭进程13594
【natstat 选项】 -an按一定顺序排列输出,-p显示哪个进程在调用
Proto网络协议;Local Address本地地址(Linux地址0.0.0.0:22 (22端口));Foreign Address外部地址
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南