- 主题:如何知道哪个进程在尝试umount?
/var/log/messages里大量的如下内容
如何知道是什么进程在尝试umount?
Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
Jul 7 14:23:44 backsrv umount: umount: /data/myapp: target is busy.
Jul 7 14:23:44 backsrv umount: (In some cases useful info about processes t
hat use
Jul 7 14:23:44 backsrv umount: the device is found by lsof(8) or fuser(1))
Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
Jul 7 14:23:44 backsrv umount: umount: /data/myapp: target is busy.
Jul 7 14:23:44 backsrv umount: the device is found by lsof(8) or fuser(1))
Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
Jul 7 14:23:44 backsrv umount: umount: /data/myapp: target is busy.
Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
Jul 7 14:23:44 backsrv umount: umount: /data/myapp: target is busy.
Jul 7 14:23:44 backsrv umount: (In some cases useful info about processes t
hat use
Jul 7 14:23:44 backsrv umount: the device is found by lsof(8) or fuser(1))
Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
Jul 7 14:23:44 backsrv umount: umount: /data/myapp: target is busy.
Jul 7 14:23:44 backsrv umount: the device is found by lsof(8) or fuser(1))
Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
Jul 7 14:23:44 backsrv umount: umount: /data/myapp: target is busy.
--
FROM 36.112.6.*
systemtap
写一个umount.stp
probe vfs.umount {
printf("Process %d (%s) called umount on mountpoint %s\n", pid(),
execname(), mountpoint)
}
然后执行 stap umount.stp
当然有可能是umount命令调用了umount系统调用,这时候你需要把umount做一个wrapper
把原来的umount命令变成umount.org,然后写一个脚本umount
#!/bin/bash
echo "process $ppid called umount" >>/tmp/umount.log
/usr/bin/umount.org $*
【 在 lag 的大作中提到: 】
: /var/log/messages里大量的如下内容
: 如何知道是什么进程在尝试umount?
: Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
: ...................
--
修改:iwannabe FROM 119.139.199.*
FROM 119.139.199.*
看看/etc/fstab是不是/data/myapp被挂载了非当前设备,或者说fstab更新了,但没有reload systemctl的daemon
【 在 lag 的大作中提到: 】
: /var/log/messages里大量的如下内容
: 如何知道是什么进程在尝试umount?
: Jul 7 14:23:44 backsrv systemd: Failed unmounting /data/myapp.
: ...................
--
修改:RuralHunter FROM 116.233.79.*
FROM 116.233.79.*
3q 这两个技巧挺好!
发现就是systemd(pid=1)在调用umount
一并感谢 @RuralHunter
通过systemctl发现有个data-myapp.mount的服务处于deactivating状态
systemctl status也能看出就是它在尝试umount
查看/run/systemd/generator/data-myapp.mount的内容,它显示的挂载信息也和/etc/fstab不一致
systemctl daemon-reload之后就好了
【 在 iwannabe 的大作中提到: 】
: systemtap
: 写一个umount.stp
: probe vfs.umount {
: ...................
--
FROM 36.112.6.*