Articles

9 Måter å finne Prosess-ID-en til et program i Linux

Når du arbeider på et Linux-system, noen ganger trenger du å finne ut hvilke prosesser som kjører og som PID eller PPID er knyttet til det. Det kan brukes til mange formål.

i Utgangspunktet, søker vi etter en PID i Linux for å avslutte et program som ikke svarer, noe som kan gjøres ved GUI oppgave manager, men CLI er den mest effektive måten å håndtere programmer som ikke svarer.

Dette er bedre enn det grafiske BRUKERGRENSESNITTET, fordi noen ganger er GUI-basert verktøy kan ikke vise den fortsatt kjører skjult prosess.,

I denne opplæringen vil vi vise deg hvordan å finne prosess-ID (PID) av et program som kjører på mange måter i Linux.

Hva er prosess-ID (PID)

PID refererer til prosess-ID, som er ofte brukt av de fleste operativsystem kjerner, slik som Linux, Unix, MacOS og Windows.

Dette er et unikt ID-nummer som automatisk blir tildelt hver prosess når det er opprettet. En prosess er en forekomst av et program.

Hva er overordnet prosess-ID (PPID)

En overordnet prosess er en prosess som har skapt ett eller flere barn prosesser., Hvert barn prosessen er gitt en Foreldrekontroll Prosess-ID (PPID), og den overordnede prosessen dreper barnet når det er ferdig med sin drift.

Du kan være interessert i å lese den nedenfor artikler, som disse er knyttet til dette emnet.

  • Hvordan for å Finne Ut Hvilken Port Nummer en Prosess som er Med i Linux
  • 3 Enkle Måter å Drepe eller Avslutte en Prosess i Linux

Hver gang prosess-ID-er endret til alle prosessene unntatt init. init er alltid den første prosessen i systemet og er stamfar til alle andre prosesser. Det holder PID-1.,

standard maksimal verdi av Pid-er 32,768. Dette kan verifiseres ved å kjøre følgende kommando

cat /proc/sys/kernel/pid_max på datamaskinen.

32,768 er maksimal verdi på 32-biters systemer, men kan settes til en verdi opp til 2^22 (ca 4 millioner) på 64-biters systemer.

Du kan spørre, hvorfor trenger vi en slik størrelse Pid? Dette er fordi Pid ikke kan brukes om igjen umiddelbart og for å forhindre potensiell feil.,

Du kan finne PID av prosesser som kjører på systemet ved å bruke under ni metoder, som for eksempel pidof kommando, pgrep-kommandoen, ps-kommandoen, pstree kommando, ss kommandoen netstat-kommandoen, lsof kommando, fikseringsenheten kommando, og systemctl kommando.

Dette kan oppnås ved hjelp av de nedenfor ni metoder.

  • pidof: pidof – finn de prosess-ID-en av et program som kjører.
  • pgrep: pgre – se opp eller signal prosesser basert på navn og andre attributter.,
  • ps: ps – rapporten et øyeblikksbilde av dagens prosesser.
  • pstree: pstree – vise et tre av prosesser.
  • ss: ss er brukt til å dumpe socket statistikk.
  • netstat: netstat viser en liste over åpne kontakter.
  • lsof: lsof – listen åpne filer.,
  • fuser: fikseringsenheten – listen prosess-Id-ene til alle prosesser som har én eller flere filer åpne
  • systemctl: systemctl – Kontroll systemd system og service manager

for Å bevise dette, vi kommer til å finne Apache prosess-ID. Sørg for å skrive inn din prosess navnet i stedet for oss.

1) Hvordan finne en prosess-ID (PID) i Linux ved hjelp av pidof kommando?

pidof kommando brukes til å finne prosess-ID-en for å kjøre programmet. Det skrives ut disse Id-ene til standard output., For å demonstrere dette, vil vi være å finne den ‘Apache2’ prosess-id i systemet.

# pidof apache2
2594 2365 2364 2363 2362 2361

I over utgang du kan ha problemer med å identifisere prosess-ID-fordi det viser alle Pid (inkludert foreldre og barn) mot den prosessen navn.

Så vi må finne den Overordnede Prosessen PID (PPID), som er hva vi er ute etter. Dette vil være det første nummeret. I mitt tilfelle er 3754 og det er sortert i synkende rekkefølge.

2) Hvordan søke en prosess-ID (PID) i Linux ved hjelp av pgrep-kommandoen?,

pgrep-kommandoen ser på prosesser som kjører, og viser prosessen Id som samsvarer med kriteriene.

# pgrep apache2236123622363236423652594

De ovennevnte produksjonen er lik ‘pidof’ kommando ut, men det sortert resultatene i stigende rekkefølge, som viser tydelig at den overordnede prosessen PID står på siste.I mitt tilfelle er 3754.,

Merk: ved å Identifisere de overordnede prosess-ID-en kan være problematisk når du bruker ‘pidof’ & ‘pgrep’ – kommandoen, som hver prosess kommer med en enkelt PPID og flere Pid-som ikke viser forskjellen mellom dem.

3) Hvordan finne en prosess-ID (PID) i Linux ved hjelp av pstree kommando?

pstree-kommandoen viser prosesser som kjører som et tre-lignende format som er svært praktisk måte å vise prosesser hierarki og gjør produksjonen mer visuelt tiltalende., Hvis en bruker navnet er spesifisert i pstree kommandoen da det viser alle prosessen som eies av den aktuelle brukeren.

pstree visuelt fusjonerer identiske avdelinger ved å sette dem i hakeparenteser og prefixing dem med repetisjon teller.

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

for Å få bare den overordnede prosessen, kan du bruke følgende format.

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

‘pstree’ – kommandoen er mye bedre enn de «pidof’ & ‘pgrep’ – kommandoen, fordi det skiller foreldre og barn prosesser som ikke er mulig med dem.,

4) Hvordan finne en prosess-ID (PID) i Linux, bruker ps-kommandoen?

ps-kommandoen viser informasjon om et utvalg av den aktive prosesser som omfatter prosess-ID (pid=PID), terminal som er forbundet med prosessen (tname=TTY), cumulated CPU-tid i hh:mm:ss format (tid=TID), og kjørbare navn (ucmd=CMD). Utskriften er usortert som standard.

Den Overordnede Prosess-ID (PPID) lett kan identifiseres basert på den prosessen start dato fra over utgang., I vårt tilfelle ‘Apache2’ prosess startes på December 11th, som er den overordnede prosessen og det andre barnet prosessen. PID av Apache2 er 3754.

5) Hvordan finne en prosess-ID (PID) i Linux ved hjelp av ss-kommando?

ss-kommando brukes til å dumpe socket statistikk. Det gjør det mulig å vise informasjon ligner netstat. Det kan vise mer TCP og statlig informasjon enn andre verktøy.

Det kan vise statistikk for alle typer stikkontakter som PAKKE, TCP, UDP, DCCP, RAW, Unix domene, etc.,

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

6) Hvordan finne en prosess-ID (PID) i Linux ved hjelp av kommandoen netstat?

– kommandoen netstat brukes til å skrive ut nettverkstilkoblinger, rutetabeller, grensesnitt statistikk, masquerade-tilkoblinger, og multicast-medlemskap. Som standard, netstat viser en liste over åpne kontakter.

Hvis du ikke angir en adresse familier, da den aktive sockets av alle konfigurert adresse familier vil bli skrevet ut. Dette programmet er foreldet. Erstatning for netstat er ss.

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

7) Hvordan finne en prosess-ID (PID) i Linux ved hjelp av lsof kommando?,

lsof kommando brukes til å liste åpne filer. Linux lsof kommandoen lister informasjon om filer som er åpne prosesser som kjører på systemet.

8) Hvordan finne en prosess-ID (PID) i Linux, fikseringsenheten ved hjelp av kommandoen?

fikseringsenheten verktøyet skal skrive til standard output prosessen Id av prosesser som kjører på det lokale systemet som har ett eller flere navngitte filer som er åpne.

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

9) Hvordan finne en prosess-ID (PID) i Linux ved hjelp av systemctl kommando?

systemctl kommandoen brukes til å kontrollere systemd service manager., Dette er en erstatning for den gamle SysVinit system management, og de fleste av de moderne Linux-operativsystemer har blitt flyttet til systemd.