查看进程打开了哪些文件

  1. 查看进程打开了哪些文件

    sudo lsof -p PID

    如果是分析一个你不太了解的进程,这个命令比较有用。

    可以使用 lsof -p PID | grep TCP 查看进程中的 TCP 连接信息。

  1. 查看文件被哪个进程使用

使用这个命令查看一个文件被哪些进程正在使用 sudo lsof /path/to/file,示例如下:

> sudo lsof /home/tu/.virtualenvs/mic/bin/uwsgi

COMMAND   PID USER  FD   TYPE DEVICE SIZE/OFF     NODE NAME

uwsgi    2071 tu txt    REG 253,17  1270899 13240576 /home/tu/.virtualenvs/mic/bin/uwsgi

uwsgi   13286 tu txt    REG 253,17  1270899 13240576 /home/tu/.virtualenvs/mic/bin/uwsgi

uwsgi   13287 tu txt    REG 253,17  1270899 13240576 /home/tu/.virtualenvs/mic/bin/uwsgi

uwsgi   13288 tu txt    REG 253,17  1270899 13240576 /home/tu/.virtualenvs/mic/bin/uwsgi

 

  1. 查看进程当前状态

当我们发现一个进程启动了,端口也是正常的,但好像这个进程就是不“干活”。比如我们执行的是数据更新进程,这个进程不更新数据了,但还是在跑着。可能数据源有问题,可能我们写的程序有BUG,也可能是更新时要写入到的数据库出问题了(数据库连接不上了,写数据死锁了)。我们这里主要说下第二种,我们自己的程序如果有BUG,导致工作不正常,我们怎么知道它当前正在干什么呢,这时候就要用到Linux中的调试分析诊断strace,可以使用 sudo strace -p PID这个命令。

通过执行后输出的一些信息,推测分析看是哪些出了问题。

 

posted @ 2019-02-20 16:40  大西瓜Paul  阅读(2083)  评论(0编辑  收藏  举报
/*增加返回顶部按钮*/ 返回顶部 /*给标题增加蓝色背景长条*/