日志-解决Linux因target is busy无法卸载硬盘/分区的问题 - PHP持续占用分区

效果图

写在前面

此次遇到的问题是,php-fpm持续占用设备/mnt/disk1,强制杀死php所有进程后,依然会自动产生新的进程再次霸占分区,导致设备无法卸载umount。思路是解决谁在不停的捣乱。

步骤

核心:

挂载文件系统到指定的目录

mount /dev/sdb /mnt/xxx

卸载已挂载的文件系统‌,支持通过设备名或挂载点指定目标

umount /dev/sdb

查看占用此设备的所有进程:

fuser -mv /mnt/xxx

杀死占用此设备的所有进程:

fuser -kv /mnt/xxx

如果 PHP 是通过 PHP-FPM 运行的,直接停止服务:

sudo systemctl stop php-fpm

或者

sudo service php-fpm stop

如果 PHP 进程是由 Web 服务器(如 Nginx/Apache)管理的,可以尝试:

sudo pkill -9 php

PHP 通常与 Web 服务器关联,停止 Web 服务可以彻底阻止 PHP 进程重启:

sudo systemctl stop nginx

sudo systemctl stop apache2

某些 PHP 脚本可能由 supervisord 或 cron 自动重启,需检查:

sudo systemctl stop supervisord

如果 PHP 进程仍自动重启,查看日志:

sudo journalctl -u php-fpm --no-pager | tail -n 50

具体:

root@amd-desktop:~# df -Th
文件系统       类型      大小  已用  可用 已用% 挂载点
tmpfs          tmpfs     4.7G  2.5M  4.7G    1% /run
/dev/sdc2      ext4      228G   32G  185G   15% /
tmpfs          tmpfs      24G   16K   24G    1% /dev/shm
tmpfs          tmpfs     5.0M  4.0K  5.0M    1% /run/lock
efivarfs       efivarfs  128K   54K   70K   44% /sys/firmware/efi/efivars
/dev/sda       ext4      3.6T  467G  3.0T   14% /mnt/ubuntu
/dev/sdc1      vfat      511M  6.1M  505M    2% /boot/efi
tmpfs          tmpfs     4.7G  108K  4.7G    1% /run/user/1000
tmpfs          tmpfs     4.7G   60K  4.7G    1% /run/user/0
/dev/sdb       ext4      1.8T  108G  1.6T    7% /mnt/disk1
root@amd-desktop:~# umount /dev/sdb
umount: /mnt/disk1: target is busy.
root@amd-desktop:~# 
root@amd-desktop:~# fuser -vm /mnt/disk1用户     进程号 权限   命令
/mnt/disk1:          root     kernel mount /mnt/disk1www       521558 ..c.. phpwww       521559 ..c.. php80www       526950 ..c.. php
root@amd-desktop:~# kill -9 521558 521559 526950
-bash: kill: (526950) - 没有那个进程
root@amd-desktop:~# 
root@amd-desktop:~# fuser -vm /mnt/disk1用户     进程号 权限   命令
/mnt/disk1:          root     kernel mount /mnt/disk1www       527907 ..c.. phpwww       527908 ..c.. php80www       528013 ..c.. php
root@amd-desktop:~# 
root@amd-desktop:~# umount /dev/sdb
umount: /mnt/disk1: target is busy.
root@amd-desktop:~# fuser -kv /mnt/disk1用户     进程号 权限   命令
/mnt/disk1:          root     kernel mount /mnt/disk1
root@amd-desktop:~# umount /dev/sdb
umount: /mnt/disk1: target is busy.
root@amd-desktop:~# 
root@amd-desktop:~# sudo systemctl stop php-fpm
Failed to stop php-fpm.service: Unit php-fpm.service not loaded.
root@amd-desktop:~# service php-fpm stop
Failed to stop php-fpm.service: Unit php-fpm.service not loaded.
root@amd-desktop:~# 
root@amd-desktop:~# killall php
root@amd-desktop:~# 
root@amd-desktop:~# umount /dev/sdb
umount: /mnt/disk1: target is busy.
root@amd-desktop:~# 
root@amd-desktop:~# fuser -vm /mnt/disk1用户     进程号 权限   命令
/mnt/disk1:          root     kernel mount /mnt/disk1www       532244 ..c.. phpwww       532249 ..c.. php80www       532663 ..c.. phpwww       532679 f.c.. php
root@amd-desktop:~# 
root@amd-desktop:~# echo '尝试停止nginx、apache、甚至停止宝塔面板,依然占用'
尝试停止nginx、apache、甚至停止宝塔面板,依然占用
root@amd-desktop:~# 
root@amd-desktop:~# echo '检查是否有守护进程或自动重启机制,某些 PHP 脚本可能由 supervisord 或 cron  自动重启'
检查是否有守护进程或自动重启机制,某些 PHP 脚本可能由 supervisord 或 cron 自动重启
root@amd-desktop:~# 
root@amd-desktop:~# sudo systemctl stop supervisord
root@amd-desktop:~# 
root@amd-desktop:~# fuser -vm /mnt/disk1用户     进程号 权限   命令
/mnt/disk1:          root     kernel mount /mnt/disk1
root@amd-desktop:~# 
root@amd-desktop:~# umount /dev/sdb
root@amd-desktop:~# 

ending...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89542.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统权限维持篇

Openssh后门 重新安装自定义的openssh,达到记录账户密码,也可以采用万能密码连接的功能 1、登录方式 2、登录软件 3、登录机制 环境准备 yum -y install openssl openssl-devel pam-devel zlib zlib-devel yum -y install gcc gcc-c makewget http://c…

spring中maven缺少包如何重新加载,报错java: 程序包org.springframework.web.reactive.function不存在

错误原因分析 java: 程序包org.springframework.web.reactive.function不存在 这个错误是由于 项目中缺少 Spring WebFlux 相关依赖 导致的。org.springframework.web.reactive.function 包属于 Spring WebFlux 模块(用于响应式 Web 开发),如…

Linux--线程池

目录 Linux线程池 线程池的概念 线程池的优点 线程池的应用场景 线程池的实现 Linux线程池 线程池的概念 线程池是一种线程的使用模式。 其存在的主要原因就为:线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程&#…

mars3d (基于 Cesium 的轻量化三维地图库)

mars3d 是什么? Mars3D 作为基于 Cesium 的轻量化框架,正以其简洁的 API 和强大的功能重新定义开发体验。它不仅解决了原生 Cesium 学习曲线陡峭的问题,还通过封装和优化实现了性能与易用性的双重突破。无论是智慧城市、低空经济还是军事仿真,Mars3D 都能提供高效的三维可视…

uniapp 中使用路由导航守卫,进行登录鉴权

前言: 在uniapp 使用中,对于登录界面可能需要路由守卫进行方便判断跳转,以下有两种方案,可以判断用户跳转的时候是否是登录状态 方案一: 1. 可以使用插件 hh-router-guard 2. 使用 uni-simpe-route 方案二: 使用通过uni提供的拦截器实现, uni.addInterceptor 1.新建in…

Leetcode 262. 行程和用户

1.题目基本信息 1.1.题目描述 表:Trips ----------------------- | Column Name | Type | ----------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | request_at | varchar | -----------…

P1102 A-B 数对

P1102 A-B 数对 题目背景 出题是一件痛苦的事情! 相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 题目描述 给出一串正整数数列以及一个正整数 C C C,要求计算出所有满足 A − B = C A - B = C A−B=C 的数对的个数(不同…

devextreme-vue的DxDataGrid如何显示行号列

devextreme-vue我使用的是23.2版本,其DxDataGrid如何显示行号列,官方一直没有方案。 DataGrid - How to display a row number in data rows in Angular | DevExpress Support dxDataGrid - provide capability to display a column with row numbers …

【设计模式06】建造者模式

前言 没什么用,类似于builder.build UML类图 代码示例 package com.sw.learn.pattern.B_create.e_builder;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();for …

datax-web报错:连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境)

文章目录 一、报错内容二、解决方法 一、报错内容 背景描述: 在linux安装了datax202309版本及datax-web2.1.2版本,datax与datax-web默认都是mysql5.x版本的。我的数据库是mysql8.x版本的。 在datax中执行json脚本从一个mysql导入mysql没问题&#xff0…

C#调用C++导出的dll怎么调试进入C++ DLL源码

第一步:首先需要打开C源码,不需要任何设置,直接下断点,然后将生成DLL目录改成到C# exe生成目录里面 第二步:打开winform项目,然后在C#项目属性->启用本地代码调试勾选后即可 最后在C#下断点F10或者F11…

Skyeye 云智能制造办公系统 - Saas v3.16.10 发布

Skyeye 云智能制造,采用 Springboot (微服务) Layui UNI-APP Ant Design Vue 的低代码平台。包含 30 多个应用模块、50 多种电子流程,CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公…

pdf 合并 python实现(已解决)

在Python中,可以使用多种库来合并PDF文件,其中最常用的是PyPDF2和PyMuPDF(又名fitz)。下面我将分别介绍如何使用这两个库来合并PDF文件。 使用PyPDF2 首先,你需要安装PyPDF2。可以使用pip来安装: 先按照库…

VCenter SSL过期,登录提示HTTP 500错误解决办法

报错图: 1. 开启 VCenter ssh远程连接 登录vmware esxi,双击打开VCenter 控制台黑窗口,根据提示按F2键 两次,打开系统设置(有fn键使用fnF2键) 输入root密码,按回车登录 选择“Troubleshooting …

Linux 下安装Oracle 11gR2 x64 netca启动不了

前言 Oracle Network Configuration Assistant (netca) 是 Oracle 提供的图形化网络配置工具,用于简化 Oracle 数据库网络组件的配置和管理。 核心功能 1、配置监听器 (LISTENER)创建、修改或删除数据库监听器(默认端口 1521)定义监听协议…

Pytorch1线性代数实现

Pytorch --线性代数实现 矩阵 正如向量将标量从零阶推广到一阶,矩阵将向量从一阶推广到二阶。 矩阵,我们通常用粗体、大写字母来表示 (例如,𝑋、𝑌和𝑍), 在代码中表示…

行业分享丨泛亚汽车数字化转型实践:虚拟仿真技术如何赋能汽车研发的创新实践?

随着汽车行业向智能化、电动化快速转型,虚拟仿真技术正成为推动产品研发变革的核心驱动力。作为行业技术先锋,泛亚汽车通过系统性布局,构建了完整的虚拟仿真技术体系,并总结出三个关键方向:打造数字化研发体系、探索精…

【硬核数学】4. AI的“寻路”艺术:优化理论如何找到模型的最优解《从零构建机器学习、深度学习到LLM的数学认知》

欢迎来到本系列的第四篇文章。我们已经知道,训练一个AI模型,本质上是在寻找一组参数,使得描述模型“有多差”的损失函数 L ( θ ) L(\theta) L(θ) 达到最小值。微积分给了我们强大的工具——梯度下降,告诉我们如何一步步地向着最…

springboot切面编程

SpringBoot切面编程 众所周知,spring最核心的两个功能是aop和ioc,即面向切面和控制反转。本文会讲一讲SpringBoot如何使用AOP实现面向切面的过程原理。 何为AOP AOP(Aspect OrientedProgramming):面向切面编程&…

【Redis#4】Redis 数据结构 -- String类型

一、前言 1. 基本概念 理解:字符串对象是 Redis 中最基本的数据类型,也是我们工作中最常用的数据类型。redis中的键都是字符串对象,而且其他几种数据结构都是在字符串对象基础上构建的。字符串对象的值实际可以是字符串、数字、甚至是二进制&#xff0…