当前位置: 首页 > news >正文

Linux之进程管理

什么是进程

在linux中每个执行的程序都称为一个进程,每个进程都分配一个ID号(pid进程号)。每个进程都可能以两种方式存在,即前台和后天。前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但屏幕上无法看到的进程,通常使用后台的方式执行。
一帮系统的服务都是以后台进程的方式存在的,而且都会常驻在系统中,直到关机才结束。
image.png


ps 显示系统执行的进程

image.png

ps -aux

System v显示风格
image.png

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

ps指令常配合grep使用,如查看sshd服务

image.png


ps -ef

以全格式显示当前的所有进程,BSD显示风格
image.png

  • UID:用户ID
  • PID:进程ID
  • PPID:父进程ID
  • C:CPU用于计算执行优先级的因子,数值越大,表明进程是CPU密集型运算,执行优先级会越低;数值越小,表示进程是I/O密集型运算,执行优先级会越高。
  • STIME:进程启动的时间
  • TTY:完整的终端名称
  • TIME:CPU时间
  • CMD:启动进程所用的命令和参数

这两个命令都可以查看进程列表,不同点如下:

  1. 风格不同。ps -ef是System v显示风格,而ps aux是BSD显示风格。
  2. ps -ef和ps aux显示内容不一样。
  3. COMMADN列如果过长,aux会截断显示,而ef不会。

终止进程kill和killall

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

kill [选项] 进程号(通过进程号杀死进程)
killall 进程名称 (通过进程名称杀死进程,支持通配符,这在系统负载过大而变得很慢时很有用)

常用选项:-9,表示强迫进程立即停止
image.png


查看进程树pstree

pstree [选项]

常用选项:

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

image.png


服务(service)管理

service管理指令

服务(service)的本质就是进程,运行在后台,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd,firewall),因此我们又称之为守护进程。

service 服务名 [start | stop | restart | reload | status]

service指令管理的服务可以在/et/init.d查看
image.png

查看服务名

使用setup查看【系统服务】就可以看到全部。
image.png
image.png


服务的运行级别

linux系统有7种运行级别,常用的是3和5。centos7以后对运行级别简化成3和5.

  • 运行级别3:完全的多用户状态,命令行模式
  • 运行级别5:也是多用户,登入后进入图形化模式
chkconfig指令

通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭。
chkconfig指令管理的服务在/etc/init.d查看
chkconfig基本语法

chkconfig  --list [ | grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off

image.png

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

systemctl管理服务

在centos7以后,很多服务不再使用service,而是使用systemctl

systemctl [start | stop | restart | status] 服务名

systemctl指令管理的服务在/usr/lib/systemd/system查看


systemctl设置服务的自启动状态
systemctl list-unit-files [ | grep 服务名] (查看服务开机启动状态)
systemctl enable 服务名 (设置服务开机启动)
systemctl disable 服务名 (关闭服务开机启动)
systemctl is-enabled 服务名 (查询某个服务是否是自启动)

查看防火墙是否开机自启动,如果不是就开启


打开/关闭指定端口

在生产环境下往往需要打开防火墙,但是如果把防火墙打开,外部请求数据包就不能跟服务器监听端口通讯了。需要我们打开指定端口,比如8080,3306,22.
image.png
firewall指令

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

动态监控进程-top

top和ps命令类似,都是用来显示正在执行的进程。top和ps最大的不同在于top在执行一段时间可以更新正在运行的进程。

top [选项]

选项说明:

  • -d 秒数:指定top命令每隔几秒更新,默认3s
  • -i:top不显示闲置或者僵死进程
  • -p:通过指定监控进程ID来仅仅监控某个进程状态

image.png
交互操作说明:
image.png
补充:

  • 监控特定用户:输入top按回车,再输入u,最后输入用户名即可
  • 终止指定进程:输入top按回车,再输入k,最后输入进程号

监控网络状态

查看系统网络情况-netstat

netstat [选项]

选项说明:

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

image.png

http://www.lryc.cn/news/271783.html

相关文章:

  • 动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper
  • 187.【2023年华为OD机试真题(C卷)】阿里巴巴找黄金宝箱(I)(贪心算法-JavaPythonC++JS实现)
  • Ubuntu22.04系统安装软件、显卡驱动、cuda、cudnn、pytorch
  • 基于矩阵乘的CUDA编程优化过程
  • layuiadmin新建tabs标签页,点击保存,打开新的标签页并刷新
  • Rxjs概念 学习
  • pillow像型学操作(转载笔记) --- 西北乱跑娃
  • JS作用域链和闭包
  • 【Spring实战】15 Logback
  • Stable Diffusion WebUI安装合成面部说话插件SadTalker
  • CSS 纵向顶部往下动画
  • 科普:敏捷估算为什么用斐波那契数列
  • HarmonyOS资源分类与访问
  • message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
  • 基于C#的机械臂欧拉角与旋转矩阵转换
  • 【百度前端三面面试题】
  • 【Java面试题】HTTP与 HTTPS 的区别
  • vue3 v-model语法糖
  • 【k8s】deamonset文件和说明
  • Zookeeper-Zookeeper特性与节点数据类型详解
  • 云计算复习提纲
  • Vue-响应式数据
  • Vue开发者必备!手把手教你实现类似Element Plus的全局提示组件!
  • 大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述
  • Golang标准库sync的使用
  • 判断两张图片是否完全一致
  • 2024洗地机哪家强?口碑洗地机推荐
  • k8s的资源管理
  • docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)
  • 非常好用的ocr图片文字识别技术,识别图片中的文字