Já me deparei mais de uma vez com a necessidade de descobrir o PID de um processo que está ocupando uma porta do S.O mas não consigo liberar a porta por não ter o id do processo podendo assim forçar que ele pare de executar.
Então segue a dica de como fazê-lo:
Linux:
netstat -tulpn
Você deverá ver uma saída como a imagem abaixo, perceba que o PID aparece na última coluna(PID/Program name) e a porta na quarta coluna (Local Address):
Se você quiser ver somente uma porta específica utilize o grep:
netstat -tulpn |grep ${NUMERO_DA_PORTA}
A saída será conforme a imagem abaixo:
Uma outra opção no Linux e outros unix like O.S é usar o lsof:
lsof |grep ${NUMERO_DA_PORTA}
Solaris:
No solaris siga a dica e execute os scripts que o Fabio Morais postou
neste link.