如何在solaris下判断某个端口被其他进程占用

原文写于 2010-05-21 18:05:24 网易博客,已删

方法1:用工具
    最常用的就是lsof.sunfreeware里面有最新的lsof工具,转为solaris开发的.分为源码版和已编译的package版.
    源码版的lsof需要用户自己使用一个c编译器编译,中间可能还需要用到其他的库.
    package版的直接解压之后用pkgadd -d 命令即可安装.安装好之后把lsof的安装目录记得加到用户自己的环境变量中.然后使用whereis lsof判断是否可用.

方法2:自己写脚本
    solaris系统中所有的进程信息以文件方式保存在/proc下,每个进程对应到一个目录,目录名为进程名.写一个脚本来读取每个进程的信息,在这些信息中查找哪个某个端口被某个进程占用.以下是网上的一个例子,并经过加工的.将以下内容保存为echo_port.sh,用chmod给其分配执行权限, 然后在控制台上运行.要查找8089被那个进程占用,运行echo_port.sh 8089就会得到对应结果.不过结果中会有很多杂项,不是很简洁.自己写脚本只适用于没法在solaris上安装lsof的情况.
-------------------------------------------------------------------
#!/bin/sh
cd /proc
for i in *
do
echo ----process $i----
pfiles $i | grep -i "port: $1"
done
-------------------------------------------------------------------

    2011-07-02补充:
    windows上netstat也有类似功能,但Solaris下的还需要进一步去尝试.

原文地址:https://www.cnblogs.com/leipei2352/p/2096342.html