Articles of lsof

打开文件数不断增加

我遇到的问题随着时间的推移打开的文件数量不断增加。 如果我运行我的服务器几个小时,它不会再接受任何连接。 限制是1024.我已经将限制增加到了大约40,000,而且这个数字每天都在增加,这只是一个时间问题,直到服务器停止接受连接。 是正常的打开的文件数量不断增加,直到我重新启动服务器? 以及可能导致此问题的可能情况是什么?

从lsof列表获取PID

我有一个反应原生应用程序,我想写一个脚本的开始testing版本。 我需要击落:8081端口,如果它是活着的。 命令: lsof -i :8081 kill -9 <PID> lsof得到这个结果: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME chrome 2423 loow 127u IPv4 13749099 0t0 TCP localhost.localdomain:36650->localhost.localdomain:tproxy (ESTABLISHED) qemu-syst 15091 loow 64u IPv4 13795587 0t0 TCP localhost.localdomain:43518->localhost.localdomain:tproxy (ESTABLISHED) qemu-syst 15091 loow 66u IPv4 13795588 0t0 TCP localhost.localdomain:43520->localhost.localdomain:tproxy (ESTABLISHED) qemu-syst 15091 loow 89u IPv4 13777485 […]

安全杀死一个名为*:etlservicemgr(LISTEN)的进程?

我试图在本地端口9001,但我得到一个listen EADDRINUSE错误。 当我用lsof -i :9001查看端口时,显示如下 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 3369 Name 12u IPv4 0x617528c251f49bb 0t0 TCP *:etlservicemgr (LISTEN) node 7803 Name 11u IPv6 0x617528c1ecc1133 0t0 TCP *:etlservicemgr (LISTEN) 什么是etlservicemgr ? 我可以杀死它吗?

Linux:计算打开文件进程

我如何检查当前使用了多less个打开的文件? 检查PM2只是一个例子: 我发现PID: ps aux | grep pm2 | awk '{ print $2 }' 检查有65536个文件的限制: # cat /proc/16305/limits | grep 'Max open files' 最大打开文件65536 65536个文件 这个限制是通过systemd设置的: # cat /etc/systemd/system/pm2.service.d/nofile_limit.conf [Service] LimitNOFILE=65536 我知道我可以检查基于用户打开了多less个文件: lsof -u UserName | wc -l 252 PM2运行在不同的用户比PM2,当我检查该用户的限制这是可笑的小,所以这里有什么错误.. 如果限制由systemd设置和pipe理,如何检查当前使用的打开文件数量? 当我写这篇文章时,我想到了,也许这可能是我自己的问题的解决scheme: lsof | grep ' userName ' | awk '{print $NF}' | sort | […]

apache在80上监听,但不在任何其他端口上

我想改变一个工作Apache的example.comconfiguration(exampleIP = 1.2.3.4),从默认的端口80改变到8001端口,使得http://example.com:8001应该工作。 我无法这样做,并将logging我所尝试的。 我想我可能需要iptables的帮助。 我的/ etc / hosts首先是好的 1.2.3.4 example.com 我开始用8001replace80端口在以下地方 /etc/apache2/ports.conf 听1.2.3.4:8001 /etc/apache2/conf.d/virtual.conf NameVirtualHost 1.2.3.4:8001 /etc/apache2/sites-enabled/example.com <VirtualHost 1.2.3.4:8001> ServerName example.com:8001 #UPDATE: ServerName example.com doesn't make a difference either </虚拟主机> 当我用80replace上述3种情况下的8001时,它就起作用了。 与8001我不能build立连接。 tcpdump也不会显示传入的请求。 由于apache守护进程重新启动时没有抛出任何错误,我试图确认,如果web服务器正在侦听8001 $ sudo lsof -i |grep 8001 apache2 731 root 3u IPv4 46858730 TCP example.com:8001 (LISTEN) apache2 734 www-data 3u IPv4 […]

如何知道一个进程打开了多less个文件?

我知道我可以使用这个命令 lsof -p xxxx | wc -l 要知道一个进程打开文件的数量,它的工作原理,但是,它是太低效率。 我有一些服务器进程有太多的套接字文件,wc -l方法永远不会返回结果。 那么,知道一个进程打开多less文件的有效方法是什么? 谢谢。

跟踪哪些文件导致iostat中的io活动

运用 iostat -Nkx 1 我可以看到,我在卷组上获得了常规IO。 我想要做的是find一种方法来将该IO链接到一个文件/pipe道/无论看什么进程创build这个IO和它打的目的地。 有没有人遇到过,请解决?

如何configurationApache不让access.log或error.log一直打开虚拟主机?

我想降低我的VPS上打开文件的数量。 使用lsof我注意到,Apache不断保持access.log和error.log为服务器上托pipe的每个域打开。 有没有办法改变这种行为?

lsof中的txt文件描述符

根据我的经验,在lsof输出中具有txt文件描述符的文件是可执行文件本身和共享对象。 lsof手册页说这意味着“程序文本(代码和数据)”。 在debugging问题时,我发现lsof报告为txt的大量数据文件(特别是ElasticSearch数据库索引文件)。 这些绝对不是可执行文件。 该过程是ElasticSearch本身,这是一个Java过程,如果这有助于指向某个人正确的方向。 我想了解这个过程是如何打开的,并使用这些文件来以这种方式进行报告。 我试图了解一些内存使用情况,我怀疑这些打开的文件与某些指标有关。 系统是Solaris 10 x86。

如何找出哪个脚本/程序/用户调用exim(并发送垃圾邮件)?

问题 我的一个客户要求我看看他的共享主机的networking服务器,以解决以下问题,但是我一直在发现什么是错的。 他的服务器被许多主要阻止列表(如CBL,Spamhaus和Outlook.com中的阻止列表)列入黑名单。 我已经试过了 我从在他的DirectAdmin环境中查看用户开始,但是我没有发现每天发送超过两封电子邮件的用户。 我下载了他的exim日志,看看邮件队列,但找不到任何不寻常的东西。 接下来我想到的是从CBL运行findbot.pl ,但只是出现了误报。 我尝试的另一件事是改变php.ini的sendmail_pathlogging每个通过sendmail发送的电子邮件。 但是,每次我更改sendmail_path时,所有PHP进程都开始挂起。 我尝试了不同的方式( MailCatcher ,我自己的脚本),但是每一个改变都使得这个过程成为悬念 。 真的很奇怪,但是在我尝试了几次之后,我转向了下一步。 下一步:安装lsof并创build一个打印lsof -i | grep smtp的输出的bash脚本 lsof -i | grep smtp到日志文件,每秒钟,同时打印每秒另一个日志文件的ps auxw outpot。 这给了我一些有价值的信息,但我还没有跟踪这个问题。 我卡在哪里 所以让它运行几个小时后,我打开了两个日志文件,看到了这个规则的大部分: lsof – 日志文件 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME exim 10921 mail 9u IPv4 2260427 0t0 TCP hostname-from-server.com:smtp->208.93.4.208:49711 (ESTABLISHED) exim 10921 mail […]