且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-09-11 23:36:40

原文写于 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下的还需要进一步去尝试.



本文转自leipei博客园博客,原文链接:http://www.cnblogs.com/leipei2352/archive/2011/07/02/2096342.html,如需转载请自行联系原作者