我有一个基于 RabbitMQ 队列架构的项目。每天 00:30,由 CRON 作业触发,生产者进程从网页获取信息并写入队列,以便将信息发送给订阅该队列的消费者进程。
它运行正常,但是,大约 2 小时后,我会随机收到队列中的一条消息(这不是固定的,可能是在 03.16 或 03:44)。我使用 RabbitMQ 激活了日志,但我无法看到哪些进程正在打开该 TCP 套接字。因此,我想记录在侦听端口(队列)上打开套接字的所有进程,以便查看哪些进程正在随机写入队列。
答案1
您可以使用命令lsof
,该命令用于确定哪些进程正在打开哪些文件。对于您的情况,您可以使用
lsof -i TCP:22
它将为您提供命令、pid 和访问套接字的用户以及一些其他内容。