在试图弄清楚某个侦听端口的应用程序如何8088
运行时,我看到它有 PID 15020
:
$ netstat -ntulp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:7070 0.0.0.0:* LISTEN 17593/node
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 15020/node
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 :::8983 :::* LISTEN 14995/java
udp 0 0 0.0.0.0:68 0.0.0.0:* -
我可以看到它是一个Node.js应用:
$ ps aux | grep 15020
ubuntu 15020 0.0 0.8 670940 32764 pts/4 Sl+ 15:58 0:00 node app.js
ubuntu 15367 0.0 0.0 8080 620 pts/8 S+ 16:33 0:00 grep --color=auto 15020
现在,我怎样才能找到它在哪里运行?我没有看到任何screen
会话tmux
正在运行。设计此作品的创意人士无法发表评论。下一步会怎样?我确实运行了find / -name app.js
,返回了几十个结果,并非所有结果都是彼此不同的版本!
对每个找到的app.js
文件进行 Grep 查找我在 8088 界面上返回的文本,结果显示大多数文件都匹配。合理的下一个故障排除步骤是什么?
答案1
您可以尝试使用 PID 运行 lsof,但很可能该文件在运行时被应用程序打开,但随后没有保持打开状态;
lsof -p 15020 | grep app.js
或者,您可以跟踪应用程序并查看输出以获取文件的完整路径;
strace -p 15020