如何找到打开端口时执行的确切命令行?

如何找到打开端口时执行的确切命令行?

我正在尝试启动一个节点服务器,但发现该端口已被使用。

我打开了许多节点进程,我希望知道其中哪一个正在使用该端口(无需反复试验)。

我正在寻找这样的命令:

$ showcommandthatupenedaport -p 9229a

~/myproject/node server.js    pid: 343434

有一个命令可以给我这样的输出(非常欢迎 bash 脚本)

答案1

阿米纳达夫:

您可以尝试(所有都是我的服务器的示例):

  • 如果您有 pid 并且想知道服务的名称,请运行 ps 命令。

例如:

$ -> ps -p 31232 -o comm=
apache2

  • fuser:如果您想检查正在使用端口的服务:
$ -> $ -> lsof -t -i :80
871
31230
31232

您可以在一个 for 循环中同时使用它们:

$ -> for pid in $(lsof -t -i :80); do ps -p $pid -o comm=; done
apache2
apache2
apache2

还有更多命令,例如 netstat 或 ss,但我认为这已经足够了。

我希望对你有帮助。

相关内容