fuser, files, and processes
Basic usage is: fuser filename.txt, which will give you this output:
USER PID ACCESS COMMAND /home/juliet/filename.txt: juliet 13644 f.... 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 13644cMost 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).