在 Solaris 8 服务器上,如何找出正在监听给定端口的进程?Windows 版“netstat”提供 -o 和 -b 开关,分别显示所属进程 ID 和名称。Solaris 下有等效程序吗?
答案1
lsof -i
默认情况下未安装,但你可以从以下位置获取 Solaris 版本http://www.sunfreeware.com/
答案2
如果您不想或无法安装 lsof,您也可以尝试命令pfiles
。它会打印出给定进程打开的所有套接字。如果您别无选择,您可以遍历所有 PID 并找到正在监听端口 25 的 PID:
PORT=25
for p in $(ps -eo pid)
do
OUT=$(pfiles $p)
if [[ "$OUT" =~ port:\ ${PORT} ]]
then
echo $p
fi
done