linux查询已打开的文件或已经执行进程打开的文件
1.fuser
#fuser [-ki] [-singal] file/dir
参数:
-k:找出使用文件/目录的PID,并试图将sigkill信号给PID
-i:必须与-k配合在删除PID之前会先要求用户确认
-sigal:如 -1 -15 等,若不添加的话,默认是sigkill(-9)
范例一:找出当前目录使用的PID
#fuser .
2.lsof 查出某个进程打开或使用的文件或设备
参数:
-a:需要多项数据“同时成立”才显示出结果的情况
-U:仅列出类UNIX系统的套接字文件类型
-u:后面接用户名,列出该用户相关进程所打开的文件
+d:后面接目录,即找出某个目录下已经打开的文件
范例一:列出当前系统上所有已经打开的文件和设备
#lsof
范例二:仅针对root列出所有进程打开的套接字文件
#lsof -u root -a -U
范例三:请列出当前系统上所有启动的外部设备
#lsof +d /dev
范例四:显示root的bash进程所有打开的文件
#lsof -u root |grep bash
3.pidof
#pidof [-sx] program_name
参数:
-s:仅列出一个pid而不列出所有的pid
-x:同时列出该程序名可能的ppid进程的pid
范例一:列出当前系统init的pid
#pidof init
范例二:找出bash即以ppid的几个主要的pid
#pidof -x bash
通往牛逼的路上,在意的只有远方!