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

【Linux】进程

一.进程

在了解进程之前,我们首先需要弄清楚什么是程序。

在 Linux 系统中,程序本质上是一组静态的可执行指令,通常以文件的形式存在于磁盘上。比如我们常用的 ls 命令,它只是一个可执行程序文件,我们可以通过 which ls 来查看它的具体路径。

当我们在 Linux 上运行一个程序时,系统会为该程序创建一个独立的运行空间,这个空间中包含了程序运行所需的各种资源,例如内存、代码段、堆栈等。这个运行中的程序实例,就是我们所说的 进程

简单来说,程序是静态的代码进程是程序运行时的动态实例

ls 命令为例,当我们每执行一次 ls,Linux 系统都会为它创建一个新的进程,这个进程会有一个唯一的进程号(PID)。如果你连续多次运行 ls,就会看到系统中出现多个不同的 ls 进程。

二.启动进程

当想要启动一个进程时(运行一个命令),主要有两种方法

前台进程
后台进程

当我们执行一个命令,比如ls时,必须等它输出完成后,才能继续输入下一个指令。这是因为该命令在前台运行,此时终端会被该进程占用,直到它执行完毕。

但后台进程就不同了。如果我们在命令后加上一个 &,比如 ls &,这个命令就会在后台运行。这样,我们可以在 ls 还在输出的同时,继续在终端中输入其他指令,不必等待它执行结束。

三.列出正在运行的进程

ps -f显示所有字段的描述

UID 此进程所属的用户 ID(运行该进程的人员)
PID
PPID 父进程 ID(启动它的进程的 ID)
C 进程的 CPU 利用率
STIME 进程开始时间
TTY	与进程关联的终端类型	
CMD 启动此进程的命令

ps -e 显示所有终端的进程(包括后台和内核进程)
然后再加上f可以显示所有字段描述

三.停止进程

kill -9 PID

四.僵尸进程和孤儿进程

当子进程被杀掉的时候,会给父进程发送一个SIGCHLD信号,类似于让父进程做善后(执行wait()函数)。而僵尸进程产生的原因就是这里
当父进程收到SIGCHLD信号时,并没有执行wait()导致子进程虽然被杀掉了,但是还一直存在,浪费系统资源
孤儿进程则是父进程先被kill,子进程没有了父进程,但是此时子进程会被系统自动分配给新的父进程init(PID 1)
所以孤儿进程的影响比较小

五.守护进程

守护进程是在后台默默工作的程序。
比方说打印机的守护进程,一直在后台默默等候人们输入“打印”指令,才会开始工作
tty为?的都是守护进程

六.查看进程利用率(top命令)

实时更新并显示有关物理和虚拟内存、CPU 使用率、平均负载和繁忙进程的信息。
除了top命令,还有一个类似的,htop提供了更直观的界面和更多的功能

F1:查看帮助。
F2:配置界面(如调整显示列)。
F3:搜索进程。
F4:过滤进程。
F5:树状图显示进程关系
F6:按列排序(如 CPU%、内存%)。
F9:终止进程(kill)。
F10:退出。

七.如何识别可疑进程

1.top/htop命令查看​

  • ​CPU 占用过高​​:非系统/已知进程长期占用 >50% CPU。
  • 进程内存RES持续增长且无合理原因。
  • 大量进程处于 D(不可中断休眠)或 Z(僵尸)

按F6排序(CPU、MEM)
按F3搜索关键词(hack等)

2.检查进程的详细信息

ps -ef

  • 随机字符命名(5as12)
  • 路径异常(/tmp/.hidden)
  • 参数含恶意URL

3.检查路径

ls -l /tmp/exe

4.查看网络连接

sudo netstat -tulnp | grep <PID或进程名>

  • 是否存在对外连接
  • 监听非服务端口(6666,2222)

5.终止并删除文件:

kill -9 PID
rm -f /tmp/.hidden
http://www.lqws.cn/news/601813.html

相关文章:

  • NLP——RNN变体LSTM和GRU
  • Android布局管理器实战指南:从LinearLayout到ConstraintLayout的优化之旅
  • Redis——常用指令汇总指南(一)
  • 【Python】断言(assert)
  • 监听器模式
  • [Python] -基础篇8-Python中的注释与代码风格PEP8指南
  • 【C++】inline的作用
  • InnoDB数据页
  • 61、【OS】【Nuttx】【构建】向量表
  • OpenCv基础(C++)
  • 6.Docker部署ES+kibana
  • 无人机目标检测数据集介绍-14,751张图片 无人机检测 航拍图像
  • 路科V0—基础(2)设计特性与接口
  • 【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(3)决策树回归模型(Decision Tree Regression)
  • 融智学定律3:流动创造价值仅当跨域协同
  • Arduino LED立方体3D公告板制作指南
  • uniapp+vue3 中使用echart 以及echart文件过大需要分包的记录
  • imx6ull芯片中断机制6.24-6.25
  • Redis为什么是单线程
  • UE5.6 官方文档笔记 [1]——虚幻编辑器界面
  • 6.2 实现文档加载和切分和简易向量数据库的功能
  • browser-tools-mcp + excel-mcp-server + cursor 实现读取网页信息自动写入Excel
  • SQL Server 进阶:递归 CTE+CASE WHEN 实现复杂树形统计(第二课)
  • 读Vista
  • Python实例题:基于 Python 的简单爬虫与数据可视化
  • Hibernate中save与saveOrUpdate的差异解析
  • HDMI2.1 FRL流控 概览
  • Linux驱动学习day13(同步与互斥)
  • AI的未来:人类会被取代,还是变得更强大?
  • HTTPS安全传输时采用的顶级阳谋