Linux运维之如何查看目录被哪些进程所占用,lsof命令、fuser命令
2023-09-11 14:18:55 时间
之前将一块硬盘挂载到某个目录下,但是现在我想卸载掉这块硬盘,无论如何都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[1]: clickhouse-server.service: Failed with result 'signal'.
现在我们找到原来是clickhouse程序在占用这块磁盘,因此我们卸载不了。事实上,lsof命令后面也可以跟上lvm的名字也是可以查出来的。
fuser命令也可以查看某块设备被哪个程序占用,
假设无法卸载的设备为/dev/sdb1 1)运行下面命令看一下哪个用户哪个进程占用着此设备 fuser -m -v /dev/sdb1 2)运行下面命令杀掉占用此设备的进程 fuser -m -v -k /dev/sdb1 或者fuser -m -v -k -i /dev/sdb1(每杀掉一下进程会让你确认) 3)再umount
相关文章
- Linux 查看进程和删除进程
- ps -ef | grep Linux进程查看命令
- Linux设置和查看环境变量的方法
- linux 如何查找io的进程
- Linux进程管理概述
- linux永久关闭swap:Ubuntu22.04在swap占用超过80%时会自动杀死资源高占用进程
- Linux 0.11-fork 中进程基本信息的复制-27
- linux 线程切换效率与进程切换效率相差究竟有多大?
- 【Linux 内核】进程管理 ( 系统调用简介 | 进程相关系统调用源码 )
- 【Linux 内核】编译 Linux 内核 ② ( 解压内核源码 | 查询当前 Linux 内核版本号 | 进入并查看 linux 内核源码目录 )
- Linux查看端口、进程情况及kill进程
- 【Linux】linux经常使用基本命令
- 【Linux】fg、bg让你的进程在前后台之间切换
- L69.linux命令每日一练 -- 第十章 Linux网络管理命令 -- arpping和telnet
- L63.linux命令每日一练 -- 第九章 Linux进程管理命令 -- runlevel、init和service
- L58.linux命令每日一练 -- 第九章 Linux进程管理命令 -- pgrep和kill
- L52.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- resize2fs和fsck
- L51.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- mkfs和dumpe2fs
- L36.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- locate和updatedb
- Linux基础命令-ps查看进程状态
- linux 配置环境变量 linux如何查看端口被哪个进程占用 重要命令
- Linux系统初始化进程及文件(带命令)