Å jobbe med en Linux -prosess betyr ofte å kjenne prosess -ID -en eller PID. Det er et unikt nummer gitt til hver stykke løpende programvare. Her er to måter å finne ut hva det er.
Hva er en Linux -prosess -ID?
Hvordan få en Linux PID med PIDOF -kommandoen
Hvordan finne PID -er med PGREP -kommandoen i Linux
Hva er en Linux -prosess -ID?
Internt holder Linux oversikt over løpsprosessen ved å tildele dem et unikt ID -nummer, kalt prosess -ID, eller PID. Hver kjørende applikasjon, verktøy og demon har en PID.
PID -er er enkle heltallverdier. En nystartet prosess vil motta en PID en høyere enn den siste PID som ble utstedt. Så prosessen med den høyeste PID er den nyeste - det vil si sist - lansert prosess. Det fortsetter til systemet treffer maksimal verdi for en PID.
Den øvre grensen for en PID er 32768. Når dette tallet er nådd, går Linux tilbake til starten og ser etter en PID som har blitt gratis fordi prosessen som tidligere eide den har avsluttet.
Prosessen med en PID på 1 er den første prosessen som lanseres når Linux lanseres av oppstartsprosessene. På systemd-baserte systemer som vil være
Systemd
. På andre systemer vil det sannsynligvis være
i det
, selv om noen Linux -distribusjoner bruker alternativer som
Openrc
eller
S6
.
Noen ganger er det nyttig å oppdage PID i en prosess, vanligvis fordi du vil utføre litt handling på den prosessen. Her er to forskjellige metoder for å finne PID i en prosess når du kjenner Navn av prosessen.
I SLEKT: Hva er UNIX PID -er og hvordan fungerer de?
Hvordan få en Linux PID med PIDOF -kommandoen
De
Pidof
Kommando kan tenkes som kombinasjonen av "PID" og "av." Det er som å spørre hvordan PID -en i denne prosessen? Hvis vi bruker kommandoen uten parametere, gjør det ikke noe. Det returnerer deg lydløst til ledeteksten. Vi må spesifisere et prosessnavn.
Pidof
forteller oss at pidet til bashskallet er 8304. Vi kan bekrefte det med
PS
kommando. Alt vi trenger å gjøre er å ringe
PS
uten parametere. Det vil rapportere om prosessene som kjører i den aktuelle økten.
Fordi
PS
Rapporter om alle prosessene den kan finne, som vil inkludere seg selv, den forteller oss at det er en
bash
prosess og a
PS
prosessløp. Som vi forventer, den
bash
prosessen har samme PID som
Pidof
rapportert om.
Hvis du har mer enn ett terminalvindu åpent,
Pidof
vil rapportere om dem alle.
Legg merke til at PID -ene er oppført fra høyeste til laveste eller med andre ord fra de siste til den eldste.
Det dette ikke viser er at du kanskje ikke er eier av alle disse prosessene.
Pidof
Finner alle prosesser med matchende navn, uavhengig av hvem som eier dem. La oss se dypere ved å pipere utgangen i
grep
. Vi bruker
-e
(Velg alle prosesser) og
-f
(full liste) alternativer med
PS
.
To av bash -prosessene tilhører bruker Dave, den tredje tilhører brukeren Mary.
Noen ganger vil en applikasjon generere mange prosesser, som hver mottar sin egen PID. Dette er hva vi får med Google Chrome.
Som standard,
Pidof
rapporter om alle prosesser. Hvis vi vil, kan vi be om bare de siste av disse prosessene. De
-s
(enkelt skudd) Alternativ gjør nettopp det.
Å bruke
drepe
kommando til
drepe manuelt
alle
krom
Prosesser ville være kjedelige. Hvis vi fanger opp listen over prosesser til en variabel, kan vi gi den variabelen til
drepe
kommando. De
drepe
Kommando kan godta flere PID -er på kommandoen, så den godtar gjerne våre innspill og dreper alle prosessene for oss.
Den første kommandoen samler utdataene fra
Pidof
og tildeler det til variabelen vår, som vi navngir
PID
. Det trenger vi ikke
ekko
Det til skjermen, vi gjør det bare for å vise hva variabelen vår har.
Vi passerer variabelen til
drepe
kommando, bruk deretter
Pidof
Nok en gang for å sjekke om det gjenstår noen kromprosesser. De er alle drept.
En sære av
Pidof
er at det ikke returnerer pidet til et skallskript. Det returnerer pidet til
bash
Shell som kjører manuset. For å se skallet som kjører et skript, må vi bruke
-x
(Skript) Alternativ.
Pidof
returnerer pid på et bashskall, og
PS
Viser oss at det er to skjell som kjører. Den ene er skallet som kjører
Pidof
Kommando, og det andre er skallet som kjører skriptet.
Hvordan finne PID -er med PGREP -kommandoen i Linux
De
pgrep
Kommandoen fungerer litt som
Pidof
I å få prosess -ID -er i Linux. Imidlertid finner den ikke bare prosesser som nøyaktig samsvarer med søket
inneholder
søketeksten.
Her er et eksempel på en datamaskin som har Firefox som kjører på seg.
Alle disse kommandoene finner Firefox -prosessen og returnerer PID. Men hvis du hadde kommet inn i kommandoen:
På egen hånd, hvordan ville du vite om PGREP hadde funnet FI Refo x og ikke, si, en dameon som heter P Refor MD?
Hvis du legger til
-l
(Listeavn) Alternativ, PGREP vil liste opp prosessnavnet ved siden av PID.
Hvis det er flere forekomster av en samsvarende prosess, er de alle oppført.
Merk at de er oppført i stigende rekkefølge, som er den motsatte ordenen til utgangen fra
Pidof
. De er oppført fra den eldste prosessen til den nyeste prosessen. Som vi så med
Pidof
, ikke alle de listede prosessene tilhører nødvendigvis deg.
De
-u
(Bruker -ID) -alternativet lar deg søke etter prosesser som samsvarer med søketeksten, og eies av den navngitte
bruker
.
Denne gangen ser vi tre bashprosesser i resultatene. Den andre blir brukt av
Mary
.
Og vi kan be om å se alle prosesser for en bestemt bruker.
For å se hele kommandolinjen, bruk
-en
(full liste) alternativ.
Et ord om PID -eierskap
Ikke alle systemprosesser eies av rotbrukeren . Mange er selvfølgelig, men ikke alle av dem. For eksempel fungerer denne kommandoen:
Det mislykkes fordi
rot
eier ikke den prosessen. Den faktiske eieren er en systembruker som heter "Avahi." Ved hjelp av riktig brukernavn fungerer kommandoen.