Come determinare dove si trova l'host locale: 8080 sorgente e server

3

Attualmente eseguo il sistema operativo Mavericks sul mio iMac. È passato un po 'di tempo da quando ho installato un server web sul mio iMac. Sono andato al mio browser Firefox e sono andato a localhost: 8080 e restituisce una stringa semplice "SUCCESSO". Come posso determinare quale server è responsabile di ciò e dove si trova il file sorgente? Ho cercato in più posizioni e non riesco a trovare la sua posizione. Ho guardato il file /etc/apache2/sites/...conf e mostra / Users / (me) / Sites ma index.html non è quello che sto vedendo. Mi aspetterei che sia comunque sulla porta 80 e non si caricherà, suggerendo che il server Apache era in esecuzione, cosa di cui non sono sicuro, basato sul Monitor attività.

Non ricordo come è stato avviato il server. Mi sono dilettato con nodejs ma non sono sicuro di quale progetto sia coinvolto in questo. C'è un modo per rintracciare questo e controllare il server e il codice webroot che si trova lì?

    
posta teaman 30.12.2014 - 05:09
fonte

1 risposta

3

Prova:

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

Le prime due colonne saranno il nome e il PID dei processi in ascolto sulla porta 8080.

Usa il PID per trovarlo in Activity Monitor, Ottieni informazioni e nota quali file è stato aperto. Avrà un sacco di librerie aperte, ma in cima alla lista sarà il file eseguibile.

In alternativa, dal nome, vedi a quale servizio corrisponde

sudo launchctl list | grep theprocessname

Ad esempio, se il nome fosse httpd , il comando precedente ti direbbe che il nome del servizio è org.apache.httpd . Se non ricevi alcun hit (perché non è in esecuzione come un demone), provalo senza sudo .

Chiedi launchctl per maggiori informazioni su quel servizio. Continuando ad usare Apache come esempio:

sudo launchctl list org.apache.httpd

ti direbbe

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

Si noti la riga "Programma", che fornisce il percorso dell'eseguibile. La maggior parte di queste informazioni proviene da /System/Library/LaunchAgents/org.apache.httpd.plist, che è il file che dice a Servizi di avvio quando eseguire il programma e come.

Il tuo server web, in ascolto sulla porta 8080, non è di Apple, quindi non sarà in / System / Library. Cerca in / Library / LaunchDaemons, o forse anche in ~ / Library / LaunchAgents (se viene eseguito solo quando hai effettuato l'accesso). (L'ascolto sulla porta 8080 non richiede il privilegio di root, quindi potrebbe essere in esecuzione come te, sebbene abbia implicazioni di sicurezza interessanti.)

Un altro posto dove guardare è in Preferenze di Sistema → Utenti e amp; Gruppi → Elementi di accesso. Dal momento che non sappiamo come l'hai impostato per l'esecuzione automatica, potrebbe essere che non lo hai fatto inserendo un file in nessuna delle cartelle ... Library / Launch *.

    
risposta data 30.12.2014 - 06:30
fonte

Leggi altre domande sui tag