Linux运维之如何查看目录被哪些进程所占用,lsof命令、fuser命令
2024-08-29 13:03:50
之前将一块硬盘挂载到某个目录下,但是现在我想卸载掉这块硬盘,无论如何都umount不了,有些同学可能说需要加上 -f 参数强制卸载,理论上是可以的,但是在我这里依然不起作用,比如:
[root@:vg_adn_clickhouseTest_1ubuntu:: ~]#umount -f /data2
umount: /data2: target is busy.
我是把一块2T的硬盘挂载到/data2目录下了,可是现在就是卸载不了,说是设备忙,仔细分析一下可以得出应该是某些应用程序的进程占用了这块分区/data2 。应用程序一直在跑着,所以我们无法卸载这块硬盘。解决的方法就是找出哪个进程在占用这块硬盘。那我们知道一块硬盘一般上都是关联至某一个目录下的。所以我们就去找这个目录被哪些进程所占用。使用命令 lsof 即可
[root@:vg_adn_clickhouseTest_2ubuntu:172.31.19.193 ~]#lsof /data2
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
clickhous 31721 clickhouse 7wW REG 253,0 59 45088774 /data2/clickhouse/status
[root@:vg_adn_clickhouseTest_2ubuntu:172.31.19.193 ~]#kill -9 31721
[root@:vg_adn_clickhouseTest_2ubuntu:172.31.19.193 ~]#service clickhouse-server status
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: signal) since Wed 2019-01-16 10:51:32 UTC; 11s ago
Process: 31721 ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml (code=killed, signal=KILL)
Process: 31715 ExecStartPre=/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=0/SUCCESS)
Process: 31713 ExecStartPre=/usr/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=0/SUCCESS)
Main PID: 31721 (code=killed, signal=KILL) Jan 16 10:51:32 ip-172-31-19-193 systemd[]: clickhouse-server.service: Failed with result 'signal'.
现在我们找到原来是clickhouse程序在占用这块磁盘,因此我们卸载不了。事实上,lsof命令后面也可以跟上lvm的名字也是可以查出来的。
fuser命令也可以查看某块设备被哪个程序占用,
假设无法卸载的设备为/dev/sdb1
)运行下面命令看一下哪个用户哪个进程占用着此设备
fuser -m -v /dev/sdb1 )运行下面命令杀掉占用此设备的进程
fuser -m -v -k /dev/sdb1
或者fuser -m -v -k -i /dev/sdb1(每杀掉一下进程会让你确认)
)再umount
最新文章
- Azure上的那些IP
- springBoot专题3---->;springBoot与多数据源的配置
- easyui 下拉树改造
- 各种编码UNICODE、UTF-8、ASCII学习笔记
- WPF中ComboBox用法
- java Memorymapfile demo
- 应用删除后 Launchpad 上仍有应用图标无法删除的解决方法
- error while loading shared libraries: libevent-2.0.so.5解决办法
- rqnoj-390-地震了!-动态规划
- Lipo Error!! can't open input file
- 负载均衡集群之LVS算法和模型
- linux下安装mysql(编译mysql源码)
- 弹性伸缩布局-flex
- 鸟哥的linux私房菜学习-(四)linux命令的基本概念
- devexpress entity framework 与 asp.net mvc的坑
- [BZOJ2296] [POJ Challenge] 随机种子
- 第一天 Requests库入门
- linux/centOS 下安装 ngnix
- Gradle项目BUG
- U3D外包团队:五款IDE推荐!
热门文章
- Visual Studio 2012 智能提示功能消失解决办法
- 开源网站流量统计系统Piwik源码分析——参数统计(一)
- lucene简单搜索demo
- Xdebug在PHP中的安装配置
- 将H5页面的应用打包成APP(苹果和安卓版本)
- .Net实现微信公众平台开发接口(一) 之 “微信开发配置”
- datatable删除行之datatable.Rows[i].Delete()。标记之后行没有了
- 【Tomcat】Tomcat日志切割
- Pseudocode MD5 CODE
- Linux 学习记录 四(Bash 和 Shell scirpt).