Articles

9 Tapoja löytää Prosessi ID on ohjelma Linux

Kun työskentelee Linux-järjestelmä, joskus sinun täytyy selvittää, mitä prosesseja on käynnissä ja joissa PID-PPID: tä tai on sidottu siihen. Sitä voidaan käyttää moniin tarkoituksiin.

Pohjimmiltaan, me etsiä PID Linux tappaa penseä ohjelma, joka voidaan tehdä GUI task manager, mutta CLI on tehokkain tapa käsitellä penseä ohjelmia.

Tämä on parempi kuin GUI, koska joskus GUI-pohjaiset työkalut eivät näytä vielä käynnissä piilossa prosessi.,

tässä opetusohjelmassa näytämme, miten löydät Linuxissa monella tavalla toimivan ohjelman process ID: n (PID).

Mikä on PID (process ID)

PID viittaa prosessi ID, joka on yleisesti käytetty eniten käyttöjärjestelmän ytimiä, kuten Linux, Unix, MacOS ja Windows.

Tämä on yksilöllinen tunniste, joka liitetään automaattisesti jokaiseen prosessiin, kun se luodaan. Prosessi on käynnissä oleva ohjelma.

mikä on vanhemman PROSESSITUNNUS (PPID)

vanhempainprosessi on prosessi, joka on luonut yhden tai useamman lapsen prosessin., Jokaiselle lapsen prosessille annetaan Vanhempainprosessitunnus (PPID), ja vanhempainprosessi tappaa lapsen, kun se päättää toimintansa.

voit olla kiinnostunut lukemaan alla olevat artikkelit, koska ne liittyvät tähän aiheeseen.

  • Miten Selvittää Joka Portin Numero Prosessi Käyttää Linux
  • 3 Helppoja Tapoja Tappaa tai Lopettaa Prosessin Linux

joka kerta, prosessi ID on muuttunut kaikki prosessit paitsi init. init on aina järjestelmän ensimmäinen prosessi ja kaikkien muiden prosessien esi-isä. Se pitää hallussaan PID 1.,

kätkytkuolemien oletusarvo on32,768. Tämä voidaan todentaa suorittamalla seuraava komento

cat /proc/sys/kernel/pid_max tietokoneeltasi.

32,768 on suurin arvo on 32-bittisissä järjestelmissä, mutta voidaan asettaa mihin tahansa arvoon 2^22 (noin 4 miljoonaa) 64-bittisissä järjestelmissä.

saatat kysyä, miksi tarvitsemme tällaisia kokoluokkia? Tämä johtuu siitä, että kätkytkuolemia ei voida käyttää välittömästi uudelleen ja estää mahdollisia virheitä.,

Voit löytää PID prosesseja käynnissä järjestelmässä käyttämällä alla yhdeksän menetelmiä, kuten komentoa pidof, pgrep komento, ps-komento, pstree-komento, ss komento netstat command, lsof-komentoa, kiinnitysyksikön komento, ja systemctl-komennon.

Tämä voidaan saavuttaa alla olevilla yhdeksällä menetelmällä.

  • pidof: pidof – etsi prosessi ID käynnissä olevan ohjelman.
  • pgrep: pgre – katso ylös tai signaali prosessit perustuvat nimi ja muut ominaisuudet.,
  • ps: ps – raportti tilannekuvan prosesseja.
  • pstree: pstree – näyttö puu prosesseja.
  • ss: ss on tapana dumpata socket tilastoja.
  • netstat: netstat näyttää listan avoimista pistorasioista.
  • lsof: lsof – listan avoimet tiedostot.,
  • fuser: kiinnitysyksikkö – lista prosessi Tunnukset kaikkien prosessien, joissa on yksi tai useampia tiedostoja, avoin
  • systemctl: systemctl – Ohjaus systemd system ja service manager

tämä todistaa, että olemme menossa löytää Apache-prosessi ID. Varmista, että syötät prosessinimesi meidän sijaan.

1) Miten löytää Prosessitunnus (PID) Linuxissa pidof-komennon avulla?

pidof-komentoa käytetään juoksevan ohjelman prosessitunnuksen löytämiseen. Se tulostaa tunnukset vakiotulokseen., Tämän osoittamiseksi löydämme järjestelmästä ”Apache2” – prosessitunnuksen.

# pidof apache2
2594 2365 2364 2363 2362 2361

edellä tuotos voi olla vaikeuksia tunnistaa prosessin TUNNUS, koska se näyttää kaikki Pid (mukaan lukien vanhempi ja lapsi) vastaan prosessin nimi.

joten meidän on löydettävä Vanhempainprosessi PID (PPID), jota etsimme. Tämä on ensimmäinen numero. Minun tapauksessani se on 3754 ja se lajitellaan alenevassa järjestyksessä.

2) Kuinka etsiä Prosessitunnus (PID) Linuxista pgrep-komennon avulla?,

pgrep komento tarkastellaan prosesseja käynnissä ja luettelot prosessin Tunnukset, jotka vastaavat valintaperusteita.

# pgrep apache2236123622363236423652594

edellä tuotos on samanlainen ’pidof’ – komennon tuotos, mutta se lajitellaan tulokset nousevasti, joka osoittaa selvästi, että äitiprosessin PID seisoo viimeisenä.Minun tapauksessani se on 3754.,

Huomautus: Tunnistaa äitiprosessin TUNNUS voi olla ongelmallista, kun käytät pidof’ & ’pgrep’ – komento, koska jokainen prosessi tulee yhdellä PPID: tä ja useita Pid, joka ei näytä eroa niiden välillä.

3) Miten löytää prosessitunnus (PID) Linuxissa pstree-komennon avulla?

pstree komento näyttää käynnissä olevat prosessit, kuten puu-kuin-muodossa, joka on erittäin kätevä tapa näyttää prosessien hierarkia ja tekee lähtö enemmän visuaalisesti houkutteleva., Jos käyttäjänimi on määritelty pstree-komennossa, se näyttää kaikki vastaavan käyttäjän omistamat prosessit.

pstree visuaalisesti yhdistää samanlaisia oksat laittamalla hakasulkeissa ja etuliitteeksi heille toistoa määrä.

# pstree -p | grep "apache2" |-
-+-apache2(2361) | |-apache2(2362) | |-apache2(2363) | |-apache2(2364) | |-apache2(2365) | `-apache2(2594)

saada vain ylätason prosessi, käytä seuraavaa muotoa.

# pstree -p | grep "apache2" | head -1 |-
-+-apache2(2361)

’pstree-komento on paljon parempi kuin ’pidof’ & ’pgrep’ – komento, koska se erottaa vanhemman ja lapsen prosesseja, jotka eivät ole mahdollisia niitä.,

4) Miten löytää prosessitunnus (PID) Linuxissa ps-komennon avulla?

ps-komento näyttää tietoja valikoima aktiivisia prosesseja, joka sisältää prosessi-ID (pid=PID), terminal liittyvä prosessi (tname=TTY), kumulatiivinen CPU aika hh:mm:ss-muodossa (=aika), ja executable nimi (ucmd=CMD). Lähtö on oletusarvoisesti lajittelematon.

Kantaprosessin tunnus (PPID) voidaan tunnistaa helposti prosessin aloituspäivän perusteella edellä esitetystä lähdöstä., Meidän tapauksessa ’Apache2’ prosessi alkoi December 11th, joka on ylätason prosessi ja muut lapsen prosessi. Apache2: n PID on 3754.

5) Miten löytää prosessitunnus (PID) Linuxista SS-komennon avulla?

ss-komentoa käytetään dump socket tilastoja. Se mahdollistaa netstatin kaltaisten tietojen näyttämisen. Se voi näyttää enemmän TCP ja valtion tietoja kuin muut työkalut.

Se voi näyttää tilastot kaikenlaisia pistorasiat, kuten PACKET, TCP, UDP, DCCP, RAAKA -, Unix-domain, jne.,

# ss -tnlp | grep apache2LISTEN 0 128 :::80 :::* users:(("apache2",pid=3319,fd=4),("apache2",pid=3318,fd=4),("apache2",
,fd=4))

6) Miten löytää prosessi-ID (PID) Linux, käyttäen netstat command?

netstat command on tapana tulostaa verkkoyhteydet, reititystaulukot, käyttöliittymä tilastot, masquerade-yhteyksien ja multicast-jäsenyydet. Oletuksena netstat näyttää luettelon avoimista pistorasioista.

Jos et määritä mitään osoite perheet, sitten aktiivinen pistorasiat kaikki määritetty osoite perheet tulostetaan. Tämä ohjelma on vanhentunut. Netstatin korvaaja on ss.

# netstat -tnlp | grep apache2tcp6 0 0 :::80 :::* LISTEN 

7) Miten löytää prosessi-ID (PID) Linux, käyttäen lsof-komentoa?,

avattujen tiedostojen luetteloinnissa käytetään lsof-komentoa. Linux lsof-komento listaa tietoja tiedostoista, jotka ovat auki järjestelmässä käynnissä olevilla prosesseilla.

8) Miten löytää prosessitunnus (PID) Linuxista Fuser-komennon avulla?

kiinnitysyksikön apuohjelma on kirjoittaa vakiotulosteeseen prosessi Tunnukset prosesseja käynnissä paikallisessa järjestelmässä, joka on yksi tai useampi nimetty tiedostoja auki.

# fuser -v 80/tcp USER PID ACCESS COMMAND80/tcp: root 
www-data 3318 F.... apache2 www-data 3319 F.... apache2

9) Miten löytää prosessitunnus (PID) Linuxista systemctl-komennon avulla?

systemctl-komentoa käytetään systemd service Managerin ohjaamiseen., Tämä on korvaava vanha SysVinit järjestelmän hallintaan, ja useimmat nykyaikaiset Linux-käyttöjärjestelmissä on siirretty systemd.