Chinaunix首页 | 论坛 | 博客
  • 博客访问: 915572
  • 博文数量: 194
  • 博客积分: 7991
  • 博客等级: 少将
  • 技术积分: 2067
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-09 22:03
文章分类

全部博文(194)

文章存档

2010年(8)

2009年(71)

2008年(109)

2007年(6)

我的朋友

分类: LINUX

2009-03-31 14:56:20

 
fuser, files, and processes
By Juliet Kemp
Sometimes you may want to know which process is accessing a particular file or filesystem — for example, if you get a "device is busy" error message. fuser will provide this information.
Basic usage is: fuser filename.txt, which will give you this output: /home/juliet/filename.txt: 13644
That number is the ID of the process that's accessing the file. Use fuser -u filename.txt to see which user owns the process: /home/juliet/filename.txt: 13644(juliet)
 
For more information, use fuser -v filename.txt:                      USER        PID ACCESS COMMAND
/home/juliet/filename.txt:
                     juliet    13644 f.... more
This shows the user and PID, as well as information about how the file is being accessed (here, f, indicating an open file), and the command being used to access it (here, more).
The -m switch shows all process accessing the filesystem, which the file is on; or you can simply specify a filesystem rather than a file. So fuser -m /dev/sdb1 output looks like:
/dev/sdb1: 18647c 16875m  7122c 19579m  1606c  7258c  5760c 13644c
Most of these processes are accessing the current directory (c), with a couple using shared libraries (m). Use the -v switch, to get more information.
To kill all processes accessing a particular file, use fuser -k filename.txt (add -i for a confirmation message before each kill). You can also use fuser on network ports: fuser -n tcp 21. This will show which process is using port 21 (useful if you get a 'port busy' message).
阅读(1211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~