fuser的作用是列出使用某文件/文件系统的进程ID 一. fuser的六种访问状态: c current directory. (表示有进程的当前路径是fuser指定的目录or文件系统) e executable being run. (表示fuser指定的文件是一个正在执行的可执行文件) f open file. f is omitted in default display mode. F open file for writing. F is omitted in default display mode. r root directory. (表示有进程的跟路径是fuser指定的目录or文件系统) m mmap‘ed file or shared library (表示有进程使用了fuser指定的文件是mmap文件或者指定的共享库) mmap简单来说就是降文件映射到内存, 修改了内存就是修改了文件。 可以参考一下这里:http://www.360doc.com/content/11/0712/20/3508740_133169056.shtml(fuser的几种状态的深入分析) 二. 常见用法 1. fuser /mnt/cdrom # 查看正在使用/mnt/cdrom的进程, 当你在eject的时候, 经常碰到“/mnt/cdrom: device is busy”, 这个时候用fuser就可以看到哪个进程正在使用该设备了 2. fuser -k /mnt/cdrom # 杀死正在访问指定文件的进程。 除非使用-signal修改信号, 否则发送SIGKILL信号 3. -m/-c 后面跟的路径都转换成该路径所在的文件系统, 比如 fuser -c /usr/local 就列出正在使用/usr/local所在文件系统的所有进程 4. -n 名字, 选择不同的名字空间, 可以是file(默认), udp, tcp。 比如列出正在使用tcp 22端口的进程: fuser -n tcp 22
时间: 2024-10-14 18:05:42