Att arbeta med en Linux -process innebär ofta att känna till sitt process -ID eller PID. Det är ett unikt nummer som ges till varje bit av löpande programvara. Här är två sätt att ta reda på vad det är.
Vad är ett Linux -process -ID?
Hur man får en Linux PID med PIDOF -kommandot
Hur man hittar PID med PGREP -kommandot i Linux
Vad är ett Linux -process -ID?
Internt håller Linux reda på sin körprocess genom att tilldela dem ett unikt ID -nummer, kallad process -ID, eller PID. Varje löpande applikation, verktyg och Daemon har en PID.
PID är enkla heltal. En nystartad process kommer att få en PID en högre än den sista PID som utfärdades. Så processen med den högsta PID är den nyaste - det vill säga senast - lanserade processen. Det fortsätter tills systemet träffar det maximala värdet för en PID.
Den övre gränsen för en PID är 32768. När den siffran har uppnåtts går Linux tillbaka till början och letar efter en PID som har blivit fri eftersom processen som tidigare ägde den har avslutats.
Processen med en PID på 1 är den första processen som lanseras när Linux lanseras av startprocesserna. På systemd-baserade system som kommer att vara
systemd
. På andra system kommer det troligtvis att vara
i det
, även om vissa Linux -distributioner använder alternativ som
Openrc
eller
s6
.
Ibland är det användbart att upptäcka PID i en process, vanligtvis för att du vill utföra några åtgärder på den processen. Här är två olika metoder för att hitta PID för en process när du vet namn av processen.
RELATERAD: Vad är Unix Pids och hur fungerar de?
Hur man får en Linux PID med PIDOF -kommandot
De
pidof
Kommando kan betraktas som kombinationen av "pid" och "av." Det är som att fråga vad som är PID i denna process? Om vi använder kommandot utan parametrar gör det ingenting. Det returnerar dig tyst till kommandotolken. Vi måste ange ett processnamn.
pidof
berättar för oss att bashalet är 8304. Vi kan verifiera att med
pse
kommando. Allt vi behöver göra är att ringa
pse
utan parametrar. Det kommer att rapportera om de processer som körs under den aktuella sessionen.
Därför att
pse
Rapporter om alla processer som den kan hitta, som kommer att inkludera sig själv, säger det att det finns en
våldsamt slag
process och a
pse
processkörning. Som vi förväntar oss,
våldsamt slag
processen har samma pid som
pidof
rapporterade om.
Om du har mer än ett terminalfönster öppet,
pidof
kommer att rapportera om dem alla.
Observera att PID: erna är listade från högsta till lägsta eller med andra ord från senaste till de äldsta.
Vad detta inte visar är att du kanske inte är ägare till alla dessa processer.
pidof
hittar alla processer med matchande namn, oavsett vem som äger dem. Låt oss se djupare genom att pipa utgången till
grep
. Vi använder
-e
(välj alla processer) och
-f
(fullständig lista) alternativ med
pse
.
Två av bash -processerna tillhör användaren Dave, den tredje tillhör användaren Mary.
Ibland kommer en applikation att generera många processer, som var och en får sin egen PID. Det här är vad vi får med Google Chrome.
Som standard
pidof
Rapporter om alla processer. Om vi vill kan vi be om bara de senaste av dessa processer. De
-s
(Single Shot) Alternativ gör just det.
Att använda
döda
beordra till
manuellt döda
alla
krom
Processer skulle vara tråkiga. Om vi fångar listan över processer till en variabel kan vi skicka den variabeln till
döda
kommando. De
döda
Kommando kan acceptera flera PID på sitt kommando, så det accepterar gärna våra input och dödar alla processer för oss.
Det första kommandot samlar ut utgången från
pidof
och tilldelar den till vår variabel, som vi namnger
pid
. Vi behöver inte
eko
Det till skärmen, vi gör det bara för att visa vad vår variabel rymmer.
Vi skickar variabeln till
döda
kommando, använd sedan
pidof
Än en gång för att kontrollera om några kromprocesser kvarstår. De har alla dödats.
En beslag om
pidof
är att det inte kommer att returnera PID för ett skalskript. Det returnerar piden på
våldsamt slag
Shell som kör skriptet. För att se skalet som kör ett manus måste vi använda
-x
(Skript) Alternativ.
pidof
returnerar pid på ett bashskal och
pse
Visar oss att det finns två skal. En är skalet som kör
pidof
kommando, och det andra är skalet som kör skriptet.
Hur man hittar PID med PGREP -kommandot i Linux
De
pgrep
Kommandot fungerar lite som
pidof
När du får process -ID i Linux. Men det hittar inte bara processer som exakt matchar sökningsledningen, den returnerar också PID: erna för alla processer vars namn
innehåller
Söktexten.
Här är ett exempel på en dator som har Firefox som körs på den.
Alla dessa kommandon hittar Firefox -processen och returnerar PID. Men om du har angett kommandot:
På egen hand, hur skulle du veta om pgrep hade hittat FI återfå X och inte, säg, en Dameon som heter P reforera MD?
Om du lägger till
-l
(Listnamn) Alternativ, PGREP listar processnamnet tillsammans med PID.
Om det finns flera instanser av en matchningsprocess är de alla listade.
Observera att de är listade i stigande ordning, vilket är motsatt ordning till utgången från
pidof
. De är listade från den äldsta processen till den senaste processen. Som vi såg med
pidof
, inte alla listade processer tillhör nödvändigtvis dig.
De
-u
(Användar -ID) Alternativ låter dig söka efter processer som matchar söktexten och ägs av det namngivna
användare
.
Den här gången ser vi tre bash -processer i resultaten. Den andra används av
mary
.
Och vi kan be om att se alla processer för en specifik användare.
Använd hela kommandoraden
-a
(Full lista) Alternativ.
Ett ord om PID -ägande
Inte alla systemprocesser ägs av rotanvändaren . Många är naturligtvis, men inte alla. Till exempel fungerar detta kommando:
Det misslyckas för att
rot
äger inte den processen. Den faktiska ägaren är en systemanvändare som heter "Avahi." Med rätt användarnamn fungerar kommandot.