At arbejde med en Linux -proces betyder ofte at kende dets proces -ID eller PID. Det er et unikt nummer, der gives til hvert stykke kørende software. Her er to måder at finde ud af, hvad det er.
Hvad er et Linux -proces -ID?
Sådan får du en Linux Pid med Pidof -kommandoen
Sådan finder du pids med PGREP -kommandoen i Linux
Hvad er et Linux -proces -ID?
Internt holder Linux styr på sin kørselsproces ved at tildele dem et unikt ID -nummer, kaldet proces -ID eller PID. Hver løbende applikation, værktøj og dæmon har en PID.
PID'er er enkle heltalværdier. En nyligt startet proces vil modtage en PID, der er højere end den sidste PID, der blev udstedt. Så processen med den højeste PID er den nyeste - det vil sige senest - lanceret proces. Det fortsætter, indtil systemet rammer den maksimale værdi for en PID.
Den øvre grænse for en PID er 32768. Når dette tal er nået, går Linux tilbage til starten og ser efter en PID, der er blevet gratis, fordi den proces, der tidligere ejes den, er afsluttet.
Processen med en PID på 1 er den første proces, der lanceres, når Linux lanceres af opstartsprocesserne. På systemd-baserede systemer, der vil være
Systemd
. På andre systemer er det sandsynligvis
i det
, selvom nogle Linux -distributioner bruger alternativer såsom
OpenRC
eller
S6
.
Nogle gange er det nyttigt at opdage PID for en proces, normalt fordi du vil udføre nogle handlinger på denne proces. Her er to forskellige metoder til at finde en proces, når du kender navn af processen.
RELATEREDE: Hvad er Unix PID'er, og hvordan fungerer de?
Sådan får du en Linux Pid med Pidof -kommandoen
Det
Pidof
Kommando kan betragtes som kombinationen af "PID" og "af." Det er som at spørge, hvad der er PID for denne proces? Hvis vi bruger kommandoen uden parametre, gør det ikke noget. Det returnerer dig lydløst til kommandoprompten. Vi er nødt til at specificere et procesnavn.
Pidof
fortæller os, at pid af bash -skallen er 8304. Vi kan verificere det med
PS
kommando. Alt hvad vi skal gøre er at ringe
PS
uden parametre. Det rapporterer om de processer, der kører i den aktuelle session.
Fordi
PS
rapporter om alle de processer, det kan finde, som vil omfatte sig selv, det fortæller os, at der er en
bash
proces og en
PS
Process kører. Som vi kunne forvente,
bash
Processen har den samme pid, der
Pidof
rapporteret om.
Hvis du har mere end et terminalvindue åbent,
Pidof
vil rapportere om dem alle.
Bemærk, at PID'erne er anført fra højeste til laveste eller med andre ord fra seneste til den ældste.
Hvad dette ikke viser, er, at du måske ikke er ejer af alle disse processer.
Pidof
Finder alle processer med matchende navne, uanset hvem der ejer dem. Lad os se dybere ud ved at røre output ind i
grep
. Vi bruger
-e
(Vælg alle processer) og
-f
(fuld liste) muligheder med
PS
.
To af bash -processerne hører til brugeren Dave, den tredje hører til bruger Mary.
Nogle gange genererer en applikation en masse processer, som hver modtager sin egen PID. Dette er hvad vi får med Google Chrome.
Som standard,
Pidof
Rapporter om alle processer. Hvis vi vil, kan vi bede om bare den seneste af disse processer. Det
-s
(Single Shot) Mulighed gør netop det.
At bruge
dræbe
Kommando til
manuelt dræbe
alle
Chrome
Processer ville være kedelige. Hvis vi fanger listen over processer til en variabel, kan vi videregive den variabel til
dræbe
kommando. Det
dræbe
Kommando kan acceptere flere PID'er på dens kommando, så den accepterer heldigvis vores input og dræber alle processer for os.
Den første kommando indsamler output fra
Pidof
og tildeler det til vores variabel, som vi navngiver
Pid
. Vi behøver ikke
ekko
Det til skærmen, det gør vi bare for at vise, hvad vores variabel har.
Vi overfører variablen til
dræbe
kommando, brug derefter
Pidof
Endnu en gang for at kontrollere, om der er nogen kromprocesser tilbage. De er alle blevet dræbt.
Et besvær af
Pidof
er, at det ikke returnerer PID for et shell -script. Det returnerer pid for
bash
Shell, der kører scriptet. For at se den skal, der kører et script, er vi nødt til at bruge
-x
(scripts) mulighed.
Pidof
Returnerer pid af en bash -skal og
PS
Viser os, at der er to skaller, der kører. Den ene er skallen, der kører
Pidof
kommando, og den anden er shell, der kører scriptet.
Sådan finder du pids med PGREP -kommandoen i Linux
Det
pgrep
Kommando fungerer lidt
Pidof
ved at få proces -id'er i Linux. Dog finder det ikke kun processer, der nøjagtigt matcher søgningskløgsen, det returnerer også pidserne i eventuelle processer, hvis navn
indeholder
Søgeteksten.
Her er et eksempel på en computer, der har Firefox, der kører på det.
Alle disse kommandoer finder Firefox -processen og returnerer PID. Men hvis du var kommet ind i kommandoen:
På egen hånd, hvordan ville du vide, om pgrep havde fundet fi refo x og ikke, siger, en dameon kaldet p Refor MD?
Hvis du tilføjer
-l
(Listenavn) Valg, PGREP viser proceskemaet ved siden af PID.
Hvis der er flere tilfælde af en matchende proces, er de alle anført.
Bemærk, at de er anført i stigende rækkefølge, hvilket er den modsatte rækkefølge af output fra
Pidof
. De er opført fra den ældste proces til den nyeste proces. Som vi så med
Pidof
, ikke alle de børsnoterede processer hører nødvendigvis til dig.
Det
-u
(Bruger -ID) Option giver dig mulighed for at søge efter processer, der matcher søgeteksten og ejes af det navngivne
bruger
.
Denne gang ser vi tre bash -processer i resultaterne. Den anden bruges af
Mary
.
Og vi kan bede om at se alle processer for en bestemt bruger.
Brug den fulde kommandolinje
-en
(fuld liste) mulighed.
Et ord om PID -ejerskab
Ikke alle systemprocesser ejes af rodbrugeren . Mange er selvfølgelig, men ikke alle af dem. For eksempel fungerer denne kommando:
Det mislykkes fordi
rod
ejer ikke den proces. Den faktiske ejer er en systembruger kaldet "Avahi." Ved hjælp af det rigtige brugernavn fungerer kommandoen.