linux中如何查看某个文件被哪些进程占用

linux中如何查看某个文件被哪些进程占用,第1张

查看进程

在Linux要检查那一个进程(process)占用特定埠号,可以用netstat或lsof来做,例如想列出所有开启的埠号,可以netstat指令:

假如只想输出某个文件的进程,可以加上grep过滤:

或者只想输出占用某个端口的进程,可以加上grep过滤:

上面可以看到是mongod占用端口966,进程的pid是966

杀死进程

通常有两个命令来结束进程:

kill - 通过进程 ID 来结束进程

killall - 通过进程名字来结束进程

我们现在用 kill 命令来杀死 mongod的进程。这个命令的结构是:kill SIGNAL PID

或者:

我们已经知道我们想要杀死的那个进程的名字,我们能够利用 killall 命令发送同样的信号,像这样:

killall -9 mongod

不会出现这种情况的,/proc是一个虚拟文件系统,这个文件系统下的所有的数据都是在内存当中的(因为它就是挂载在内存当中的),用df -a命令查看它的大小的时候是会显示为0的。这个文件系统的作用是放置Linux系统所需要加载的系统数据,例如系统内核、进程、外部设备的状态以及网络状态等,比如常见的/proc/cpuinfo文件就在里面,不会有哪个进程大量占用/proc目录,再加上数据是在内存中,所以它不会造成Linux根目录爆满。

使用fuser来查文件或目录被谁占用

fuser /proc

/proc:2454rc

参数:-v 显示用多信息,-u 显示用户

# fuser -uv /proc

用户 进程号 权限 命令

/proc: rtkit 2454 .rc.. (rtkit)rtkit-daemon

想要显示/proc目录下所有文件和目录被占用情况,加-m参数

# fuser -uvm /proc

用户 进程号 权限 命令

/proc: root 1311 f.... (root)rsyslogd

root 1667 f.... (root)vmtoolsd

root 2028 f.... (root)acpid

haldaemon 2040 f.... (haldaemon)hald

root 2297 F.... (root)Xorg

rtkit 2454 .rc.. (rtkit)rtkit-daemon

root 2659 f.... (root)nautilus

root 2673 f.... (root)udisks-daemon

root 2712 f.... (root)gnome-power-man

使用删除某个PID,加-k参数,加入-i,配合-k会询问用户意愿

# fuser -ki /proc

/proc:2454rc

杀死进程 2454 ? (y/N) n


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7520405.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存