【发布时间】:2010-09-10 14:36:10
【问题描述】:
于是我登录到一个 Solaris 盒子,尝试启动 Apache,发现已经有一个进程在监听 80 端口,而且不是 Apache。我们的盒子没有安装 lsof,所以我无法查询。我想我可以做到:
pfiles `ls /proc` | less
并寻找“端口:80”,但如果有人有更好的解决方案,我会全力以赴!如果我可以在没有 root 的情况下寻找聆听过程,那就更好了。我对 shell 和 C 解决方案都持开放态度;下次遇到这种情况时,我不介意随身携带一个小的自定义可执行文件。
更新:我说的是我不是管理员的 solaris 的通用安装(尽管我确实有超级用户访问权限),所以从免费软件磁盘安装东西不是一种选择。显然,两者都没有对 fuser、netstat 或其他工具使用特定于 Linux 的扩展。不幸的是,到目前为止,在 all 进程上运行 pfile 似乎是最好的解决方案。如果情况仍然如此,我可能会发布一个答案,其中包含一些比上面剪辑更有效的代码。
【问题讨论】:
-
@AlanH
netstat不会告诉你过程。 -
在 Solaris 11.2
netstat -aun中为您提供 pid 和命令。请参阅@nolan6000 的回答。