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

如题,例如,在/home/dev下有个文件叫1.txt。我发现我无法删除这个文件,提示"filebusy"。所以我想查看这个文件是不是有其他进程在使用中,应该如何查看?(... 如题,例如,在/home/dev下有个文件叫1.txt。我发现我无法删除这个文件,提示"file busy"。所以我想查看这个文件是不是有其他进程在使用中,应该如何查看?(ps??) 展开
 我来答
程序员养大闸蟹
2018-07-02 · 自家的蟹塘,苏州阳澄湖蓝标大闸蟹养殖户
程序员养大闸蟹
采纳数:2362 获赞数:20622

向TA提问 私信TA
展开全部

查看进程

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

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

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

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

杀死进程

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

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

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

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

或者:

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

killall -9 mongod

黔含品2
2017-01-12 · TA获得超过3.8万个赞
知道小有建树答主
回答量:2.7万
采纳率:45%
帮助的人:1401万
展开全部
linux系统下查看进程打开文件
在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件,有多少个文件描述符表示该进程打开了多少文件。
另外Linux
默认的进程打开文件上限是1024个,可以通过ulimit
-n查看。很多系统上限可以通过修改/etc/security/limits.conf文件改变,这个文件有详细的注释,对如何修改做了说明。如果希望
把所有用户的进程打开文件上限改为65536,可以加入下面两行

* soft nofile 65535
* hard nofile 65535

还可以只真对某个用户或某个组做修改,具体方法参见文件注释。修改后需要重新启动系统才能生效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
geqiancangni
2015-08-18 · TA获得超过114个赞
知道小有建树答主
回答量:303
采纳率:66%
帮助的人:77.1万
展开全部
1.只查看该进程:ps -ef | grep 11345
2.查看该进程打开的文件:lsof -p 11345
3.查看内存分配:lcat /proc/11345/maps
4.查看堆栈:pstack 11345
5.查看发出的系统调用:strace -p 11345
6.查看调用库函数:ltrace -p 11345
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yexicheng
2014-12-29 · TA获得超过1.2万个赞
知道大有可为答主
回答量:8857
采纳率:69%
帮助的人:7064万
展开全部
可以使用ps -fe|grep filename,也可以使用fuser filename查看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式