Asennan hadoopia Ubuntu-järjestelmääni. Kun käynnistän sen, se ilmoittaa, että portti 9000 on varattu.

Käytin:

netstat -nlp|grep 9000 

nähdäksesi onko tällaista porttia olemassa ja Sain tämän:

 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 

Mutta miten saan sen pitävän prosessin PID: n?

Kommentit

  • Katso tämä wilddiary.com/find-the-process-using-a-given-port
  • Vastattu SU: lla – Tietyn Linux-porttia käyttävän prosessin etsiminen
  • netstat -komento saattaa toimia monissa käyttöjärjestelmissä, jotta voit saada sen, sinun on vain löydettävä argumentit, jotka varmistavat, että se näyttää pids jokaisen tunnetun avoimen portin varrella. > Vastaa

    Linuxissa sinun on oltava pääkäyttäjä tai prosessin omistaja saadaksesi haluamasi tiedot. Sinänsä toisena käyttäjänä toimivien prosessien sudo -ennakko on eniten mitä tarvitset. Tämän lisäksi nykyaikaisissa Linux-järjestelmissä ss on työkalu tähän:

    $ sudo ss -lptn "sport = :80" State Local Address:Port Peer Address:Port LISTEN 127.0.0.1:80 *:* users:(("nginx",pid=125004,fd=12)) LISTEN ::1:80 :::* users:(("nginx",pid=125004,fd=11)) 

    Sinä voi myös käyttää samaa kutsua, jota käytät tällä hetkellä, mutta muista sudo:

    $ sudo netstat -nlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx 

    Voit myös käytä lsof:

    $ sudo lsof -n -i :80 | grep LISTEN nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN) 

    kommentteja

    • Huomaa: OSX: ssä -p -vaihtoehto on pikemminkin protokollalle kuin prosessille. Katso tämä kysymys
    • @BryanP OP pyysi Ubuntua niin, että ' s tavallaan merkityksetön …
    • @AdamB Ellei Mac-käyttäjä saapunut tänne hakemaan Finding the PID of the process using a specific port
    • Tätä vastausta parannettaisiin todennäköisesti asettamalla tarve sudo ylhäältä.
    • @MrOnyancha Käytä terse (-t) -vaihtoehtoja – lsof -ti tcp:80

    Vastaa

    Voit myös käyttää lsof käyttö ity. Täytyy olla pääkäyttäjä.

    # lsof -i :25 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME exim4 2799 Debian-exim 3u IPv4 6645 0t0 TCP localhost:smtp (LISTEN) exim4 2799 Debian-exim 4u IPv6 6646 0t0 TCP localhost:smtp (LISTEN) 

    Kommentit

    • Tämä komento antaa sinulle myös prosessit, joissa on established -yhteydet, ei vain prosessit, jotka ovat listening.
    • Ei välttämättä ole juuria. Ja niille, jotka haluavat saada vain PID: n, voit lsof -i :25 -Fp, joka tuottaa ulostuloa kuten p1234.

    Vastaa

    Käytän ”CentOS 7 minimal” -ohjelmaa, jolla ei ole netstat eikä lsof. Mutta monilla linux-jakeluilla on socket statistics -komento (ts. ss).

    Tässä on esimerkki suorituksesta:

    # ss -tanp | grep 6379 LISTEN 0 128 127.0.0.1:6379 *:* users:(("redis-server",pid=2531,fd=4)) 

    kommentit

    • Katso myös ss -pntl 'sport = :6379'

    vastaus

    Voit myös käyttää fuser:

    fuser -v -n tcp 22 

    Lähtö:

     USER PID ACCESS COMMAND 22/tcp: root 598 F.... sshd 

    kommentit

    • Se ei ole ' t toimi kiinnitysyksikkö -v -n tcp 80 , jopa yritän sudon kanssa
    • Huomaa: Tämä vaatii sudo jos loukkaava prosessi aloitettiin myös sudo
    • Tämä on hyvä muistaa yleensä. Linuxin komennot eivät yleensä ' anta tietoa juuren / sudon aloittamista prosesseista, ellei komentoa suoriteta Sudon kanssa. Tämä pätee myös silloin, kun komento ei normaalisti tarvitse sudoa toimiakseen oikein.

    Vastaa

    Komennon suorittaminen sudo -merkin avulla saat PID. Kehityskoneellani saan:

    $ netstat -nlp | grep 8080 tcp6 0 0 :::8080 :::* LISTEN - $ sudo netstat -nlp | grep 8080 tcp6 0 0 :::8080 :::* LISTEN 16449/java 

    Ja kuten muissa vastauksissa mainitaan, voit käyttää myös ss tai lsof -komennot.

    Kommentit

    • käynnissä oleva komento nimellä sudo näyttää prosessin tunnuksen
    • Mutta entä jos sudo netstat -nlp | grep 34157 näyttää silti - PID: n sijaan?

    vastaus

    Työskentelen Yocto Linux -järjestelmässä, jossa on rajoitettu joukko käytettävissä olevia Linux-työkaluja. Onnistuin löytämään käynnissä olevan portin prosessi seuraavilla komennoilla (mistä löydän prosessin portilla 1883):

     root@root:~# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN tcp 0 0 localhost.localdomain:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:9080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN tcp 0 0 :::hostmon :::* LISTEN tcp 0 0 localhost:domain :::* LISTEN tcp 0 0 :::ssh :::* LISTEN tcp 0 0 :::1883 :::* LISTEN root@root:~# fuser 1883/tcp 290 root@root:~# ps | grep 290 290 mosquitt 25508 S /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 12141 root 8444 S grep 290  

    Kuten yllä voimme nähdä, se on ohjelma /usr/sbin/mosquitto, joka käyttää porttia 1883.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *