web-dev-qa-db-fra.com

Comment savoir quel service s'exécute sur un port particulier sous Linux?

J'essaie d'exécuter le serveur weblogic sur ma machine Linux et j'obtiens l'erreur suivante:

ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

Je pense que l'erreur signifie que le port du débogueur qui par défaut est 8453 est déjà détenu par un autre service. Comment puis-je savoir quel service fonctionne dans un numéro de port particulier?

P.S: J'ai utilisé la commande netstat mais cela montre tous les services occupant tous les ports ..ici je ne suis intéressé que par un port particulier.

50
Geek

Deux façons:

  • lsof -i :port -S
  • netstat -a | grep port

Tu peux faire man lsof ou man netstat pour les informations nécessaires. Remplacez port par le numéro de port que vous souhaitez rechercher.

57
BitsOfNix

Vous pouvez utiliser fuser ou lsof c'est-à-dire:

fuser 8453/tcp
lsof -i TCP:8453

Si vous souhaitez plus d'informations sur fuser, vous pouvez également utiliser le -v drapeau, c'est-à-dire: fuser -v 8453/tcp

12
Ulrich Dangel

pour ce que ça vaut ... selon la version de netstat (spécifiquement GNU netstat) que vous avez, vous pouvez utiliser

netstat -punta | grep <port>

cela vous montrera les connexions dans les états ESTABLISHED et LISTEN UDP et TCP et il ignorera les sockets locaux UNIX. le résultat final est un joli petit ensemble de résultats soigné.

le -p flag vous donnera l'ID du processus et le nom du processus de tout ce qui utilise ce port

le -u l'indicateur montre udp

le -n le drapeau est pour les adresses numériques

le -t l'indicateur montre tcp

le -a affiche les prises d'écoute et de non-écoute

9
h3rrmiller

Sur les centos

/usr/sbin/lsof -i tcp:8453 (lsof -i protocol:port)

Sur ubuntu

/usr/bin/lsof -i tcp:8453

Ou, restreignez les résultats de netstat à l'aide de filtres.

3
sundeep