Linux fuser命令用法
fuser命令用于查看系统中哪个进程正在使用指定的文件、目录或socket,也可以用来杀死占用指定文件或目录的进程。以下是fuser命令的详细介绍:
语法:
fuser [-cukmMnsv] [-a|-s] [-4|-6] [文件名|目录名|socket文件名]
选项与参数:
-c:使用指定的信号杀死占用指定文件的进程。若不使用-c选项,则fuser仅会显示哪些进程正在使用指定文件。
-u:显示使用指定文件的进程的用户名称。
-k:使用指定的信号杀死占用指定文件的进程。
-m:显示使用指定文件的进程的主机名称。
-M:启用NFS文件锁信息。
-n:不打印改进程开放的文件列表,仅给出进程号。
-s:打印指定文件的信号列表。
-v:使用verbose模式。
-4:使用IPv4地址。
-6:使用IPv6地址。
- a:使用整个系统的文件列表而不是只使用物理的文件。
- s:在fuser命令中指定文件的名称,这个选项是必需的。
示例:
1. 查询某个文件被哪些进程所占用:
fuser <filename>
例如:
fuser /var/log/messages
2. 查询某个目录下所有文件被哪些进程所占用:
fuser -u <directory>
例如:
fuser -u /usr/local/nginx
3. 显示所有已经打开的文件的信息:
fuser -v /dev/sda
4. 杀死某个文件被使用的进程:
fuser -k <filename>
例如:
fuser -k /var/log/messages
5. 强制杀死某个文件被使用的进程:
fuser -k -9 <filename>
例如:
fuser -k -9 /var/log/messages
6. 查询某个端口被哪些进程所占用:
fuser -n tcp <port>
例如:
fuser -n tcp 80
7. 查询某个用户所占用的所有文件:
fuser -u <username>
例如:
fuser -u nginx
总结:
需要注意的是,fuser命令需要root权限才能执行。fuser命令通常用来查找、杀死占用文件或socket的进程。它可以打印进程的PID、用户和主机名,并可以使用指定的信号来杀死进程。fuser命令在定位系统资源问题时非常有用,可以快速识别哪些进程正在使用指定文件。