Comment savoir quel processus utilise telle socket ou tel périphérique

Plusieurs commandes permettent de répondre à cette question.

Netstat

J’utilise en général la commande netstat -ntap pour voir quels sont les ports ouverts. La dernière colonne indique quels sont les noms des programmes qui utilisent les ports. Vous devez lancer cette commande en tant qu’utilisateur root, sinon vous n’aurez pas les droits pour savoir quels sont tous les processus en jeu.

Exemple :

$ netstat -ntap
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:1476            0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN     -
tcp        0      0 10.31.99.3:3306         0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:1099            0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:8090            0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:33370           0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:8091            0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:33371           0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:33372           0.0.0.0:*               LISTEN     -
tcp        0      0 0.0.0.0:4444            0.0.0.0:*               LISTEN     -
tcp        0    248 10.31.99.3:22           10.31.0.162:2301        ESTABLISHED-
tcp        0      0 10.31.99.3:22           10.31.0.162:4268        ESTABLISHED-

En lancant la commande en étant root :

$ sudo netstat -ntap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:1476            0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN     11485/java
tcp        0      0 10.31.99.3:3306         0.0.0.0:*               LISTEN     11969/mysqld
tcp        0      0 0.0.0.0:1099            0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN     5614/apache2
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     2034/xinetd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     968/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     838/exim4
tcp        0      0 0.0.0.0:8090            0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:33370           0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:8091            0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:33371           0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:33372           0.0.0.0:*               LISTEN     11485/java
tcp        0      0 0.0.0.0:4444            0.0.0.0:*               LISTEN     11485/java
tcp        0    148 10.31.99.3:22           10.31.0.162:2301        ESTABLISHED6839/1
tcp        0      0 10.31.99.3:22           10.31.0.162:4268        ESTABLISHED11874/0

lsof

L’avantage de cette commande est qu’elle n’est pas limitée aux sockets. Elle s’occupe de tout descripteur de fichier. De la même façon que pour netstat, vous devrez lancer cette commande en root pour pouvoir connaître les utilisateurs de tout descripteur.

Je fais tourner un apache2 sur le port 81 de la machine sur laquelle je travaille. Pour utiliser lsof avec les sockets, voici la commande à utiliser :

$ sudo lsof -i :81
COMMAND  PID     USER   FD   TYPE DEVICE SIZE NODE NAME
apache2 5614     root    3u  IPv4  13850       TCP *:81 (LISTEN)
apache2 5628 www-data    3u  IPv4  13850       TCP *:81 (LISTEN)
apache2 5631 www-data    3u  IPv4  13850       TCP *:81 (LISTEN)
apache2 5632 www-data    3u  IPv4  13850       TCP *:81 (LISTEN)
apache2 5633 www-data    3u  IPv4  13850       TCP *:81 (LISTEN)
apache2 5639 www-data    3u  IPv4  13850       TCP *:81 (LISTEN)
apache2 7572 www-data    3u  IPv4  13850       TCP *:81 (LISTEN)
apache2 7586 www-data    3u  IPv4  13850       TCP *:81 (LISTEN)

Je pense que ce sont tous les processus/threads qui peuvent accéder à la socket qui sont montrés. Cette commande reste donc toutefois très utile pour avoir une réponse exhaustive à la question “qui utilise ce port ?” lorsque vous voulez le savoir.

Là, j’ai choisi un port pour lequel peu de lignes sont affichées. Pour information, je fais aussi tourner un serveur J2EE JBOSS sur le port 8080, et lorsque je lance la commande sudo lsof -i :8080, le résultat fait 59 lignes…

Je préfère donc netstat qui offre une réponse plus synthétique, ce dont j’ai le plus souvent besoin.

Liens externes

Article sur AJAX dans 01 Informatique

En général, j’abhorre ce magazine et son contenu. Je le trouve souvent creux et uniquement destiné à permettre aux DSI de se faire mousser aux réunions en faisant un Buzzword Bingo.

J’ai trouvé que cet article sur AJAX était plutôt mesuré, à l’inverse de l’énorme buzz à propos du “Web 2.0” que dénonce actuellement dans la blogosphère un grand nombre de personnes : Laurent, François, TC, LaurentJ, ….

Preuve en est l’analyse du journaliste en conclusion de l’article :

Du coup, certains s’emballent. Ils voient dans la nouvelle technique Ajax le modèle de développement de tous les types d’applications client dans une architecture orientée services (SOA). La technique semble pourtant loin d’être mature. Alors, simple battage médiatique ou début de révolution ?

Le fils de Villepin

Allez Daniel, rions un peu… Même si ça me désole aussi, cette image m’a bien fait marrer.

Publications

Ça faisait longtemps que j’avais préparé ces documents, mais je n’avais pris eu le temps de les mettre en ligne. Voici donc erreur réparée.

Je mets donc en ligne trois documents techniques traitant de sujets différents :

  • Des études techniques Java/J2EE (150 pages, 4Mo). Ce document a été produit cette année par notre équipe pour le projet de GL. Il étudie un panel assez large d’outils potentiellement utiles pour les besoins de notre projet. Vous constaterez que les niveau d’études de chaque technologie n’est pas homogène. Je pense toutefois que ces études pourront servir à du monde.

  • Le rapport (400Ko) et le code pour le projet du cours de Modélisation Des Réseaux sur DiffServ, un protocole de gestion de QoS. J’ai travaillé avec Vincent sur ce projet, dont le code Tcl nous a pas mal fait chauffer les neurones :-). Le code en question est fait pour fonctionner avec l’outil de simulation Network Simulator, aussi connu sous le nom de ns. (repository subversion du projet)

  • Un compte-rendu de TP d’initiation à la sécurité des réseaux (25 pages, 400Ko, exercices pratiques sous GNU/Linux). Je parle d’initiation parce qu’on ne peut pas se prétendre compétent en ayant lu et vu que cela, mais quelques informations contenues dans ce document sont toutefois très intéressantes.

Tous ces travaux ont été réalisés pendant ma troisième année d’école d’ingénieurs chez Ingénieurs 2000 dans la filière Informatique Réseaux.

Les extensions de Firefox

Comme Batmat ne poste plus beaucoup en ce moment, je vais reprendre la main et j’vais vous parler de mes extensions Firefox préférées :

  • Google Pagerank Status dont Batmat a parlé, il y a quelques mois. Même si c’est limite légal. C’est quand même bien pratique.
  • Color Zilla qui permet de récupérer les indices RGB d’une couleur affichée sur une page. Mais surtout, une fonctionnalité que je trouve bien pratique : un zoom qui zoom tout même les images.
  • Live HTTP Headers pour afficher les entêtes HTTP échangées avec les serveurs web.
  • Copy Plain Text pour copier du texte brut sans formatage. Très utile pour copier des textes dans Open Office ou autres.
  • IE View pour afficher une page dans Internet Explorer. Houhououhou!!! Oui je sais mais bon quand un site passe pas sous Firefox ça évite d’avoir a faire un copier-coller de l’adresse dans IE. Un simple clic et hop le méchant IE s’affiche avec la page désirée.
  • Mouse Gestures pour lancer des commandes à la souris en dessinant dans la fenêtre (comme dans Opéra). C’est bien marrant et puis ça peut parfois aller plus vite que les raccourcis clavier.

Pour ceux qui sont intéressés, toutes ces extensions sont dispo sur le site geckozone. Bon je sais ça fait un peu pub comme ça, mais non, je ne suis pas rémunéré par la fondation Mozilla.

PS: pour ceux qui sont pas au courant la version 1.0.7 de Firefox est dispo… non, non puisque j’vous dis que je touche rien !

L'école est finie

Ce billet chez mauriz me fait songer au fait que j’entame aujourd’hui une nouvelle étape de ma vie… Je me lève certes pour aller encore travailler au même endroit que ces trois dernières années, à la différence que j’y vais à partir d’aujourd’hui non plus comme apprenti mais comme ingénieur en CDI.

Malgré le fait que je vais pourtant “simplement” continuer dans les premiers temps le travail en cours, je me sens un peu bizarre ce matin :-).

Debian, combien ça coûte ?

Dans la même verve que ce billet dans lequel je vous parlais du noyau Linux estimé à 650 millions de dollars s’il fallait le redévelopper à partir de rien, on apprend cette semaine, dans la DWN, le coût estimé de la distribution Debian :

La valeur de Debian GNU/Linux. Le document Measuring Libre Software étudiant la taille des paquets source dans Debian 3.1 calcule la taille de Sarge (presque 230 millions de lignes de code source), l’utilisation des divers langages de programmation dans lesquels sont écrits les logiciels et la taille des paquets inclus dans la distribution. Il estime également le coût d’une création telle que Debian en partant de rien avec une méthode de coût reconnue (COCOMO) à plus de 8 milliards de dollars américains.

OOo que c'est beau

Pour faire patienter les millions de lecteurs de ce blog, un petit plaisir parce que je n’ai pas le temps d’écrire de plus longs billets :-).

Je passe demain à 14h ma soutenance de mémoire d’ingénieur. Après ça, fini les études. J’ai en effet réfléchi et je ne continuerai finalement pas en DEA master 2 de recherche.

Bon, TC n’en a pas voulu alors je le mets ici. Vous allez voir, c’est fin, ça se mange sans faim :) :

All we are is kite in the wind...

Aile de traction (kite
surf)

Citation

Mon frère vient de me citer une phrase de Tomer Sisley sur la calvitie :

Au début, on se rend pas compte tout de suite qu’on devient chauve, on se dit juste qu’on passe beaucoup plus de temps à se laver le visage.

Page 15 of 33 Older