4 votes

Comment déterminer l'emplacement de la source et du serveur localhost:8080 ?

Mon iMac est équipé du système d'exploitation Mavericks. Cela fait un moment que je n'ai pas installé de serveur web sur mon iMac. Je suis allé dans mon navigateur Firefox et j'ai accédé à localhost:8080 et il retourne une simple chaîne de caractères "SUCCESS". Comment puis-je déterminer quel serveur est responsable de cela et où se trouve le fichier source ? J'ai cherché à plusieurs endroits et je n'ai pas trouvé son emplacement. J'ai regardé le fichier /etc/apache2/sites/...conf et il montre /Users/(me)/Sites mais l'index.html qui s'y trouve n'est pas ce que je vois. Je m'attendrais à ce qu'il soit sur le port 80 de toute façon et il ne se charge pas, ce qui suggère que le serveur apache est en cours d'exécution, ce qui n'est pas le cas, j'en suis presque sûr, d'après le moniteur d'activité.

Je ne me souviens pas de la façon dont le serveur a été lancé. J'ai tâté de nodejs mais je ne sais pas trop quel projet est impliqué dans cette affaire. Y a-t-il un moyen de retrouver ce projet et de contrôler le serveur et le code webroot qui s'y trouve ?

4voto

ganbustein Points 1312

Essayez :

sudo  lsof -n -i :8080 -s TCP:LISTEN

Les deux premières colonnes sont le nom et le PID du ou des processus qui écoutent sur le port 8080.

Utilisez le PID pour le trouver dans Activity Monitor, Get Info, et remarquez quels fichiers sont ouverts. Il y aura un certain nombre de bibliothèques ouvertes, mais le fichier exécutable figurera en tête de liste.

Il est également possible, à partir du nom, de voir à quel service il correspond à l'aide de la fonction

sudo launchctl list | grep theprocessname

Par exemple, si le nom était httpd la commande ci-dessus vous indique que le nom du service est org.apache.httpd . Si vous n'obtenez aucun résultat (parce qu'il ne tourne pas en tant que démon), essayez sans sudo .

Demandez à launchctl plus d'informations sur ce service. Continuons à utiliser Apache comme exemple :

sudo launchctl list org.apache.httpd

vous dirait

{
    "LimitLoadToSessionType" = "System";
    "Label" = "org.apache.httpd";
    "TimeOut" = 30;
    "OnDemand" = false;
    "LastExitStatus" = 0;
    "PID" = 39660;
    "Program" = "/usr/sbin/httpd";
    "ProgramArguments" = (
        "/usr/sbin/httpd";
        "-D";
        "FOREGROUND";
    );
};

Remarquez la ligne "Programme", qui indique le chemin d'accès à l'exécutable. La plupart de ces informations proviennent de /System/Library/LaunchAgents/org.apache.httpd.plist, qui est le fichier qui indique aux services de lancement quand et comment exécuter le programme.

Votre serveur web, qui écoute sur le port 8080, ne provient pas d'Apple, et ne se trouve donc pas dans /System/Library. Regardez dans /Library/LaunchDaemons, ou peut-être même dans ~/Library/LaunchAgents (s'il ne s'exécute que lorsque vous êtes connecté). (L'écoute sur le port 8080 ne nécessite pas le privilège Root, il pourrait donc s'exécuter en votre nom, bien que cela ait des implications intéressantes en termes de sécurité).

Vous pouvez également consulter les Préférences systèmeUtilisateurs et groupesEléments de connexion. Comme nous ne savons pas comment vous l'avez configuré pour qu'il s'exécute automatiquement, il se peut que vous ne l'ayez pas fait en plaçant un fichier dans l'un des répertoires ...Library/Launch*.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X