pgrep, pkill, pidwait — slå upp, signalera eller vänta
på processer baserat på namn och andra attribut
pgrep [flaggor] mönster
pkill [flaggor] mönster
pidwait [flaggor] mönster
pgrep letar igenom de just nu körande processerna och listar de
process-ID:n som matchar urvalskriterierna till standard ut. Alla kriterierna
måste matcha. Till exempel,
- $ pgrep -u root sshd
kommer endast lista processerna som heter
sshd OCH ägs av
root. Å andra sidan,
- $ pgrep -u root,daemon
kommer lista processerna som ägs av
root ELLER
daemon.
pkill kommer skicka den angivna signalen (
SIGTERM som standard)
till varje process istället för att lista dem på standard
ut.
pidwait kommer vänta på varje process istället
för att räkna upp dem på standard ut.
-
-signal
-
--signal signal Definierar signalen att
skicka till varje matchad process. Både det numeriska eller det
symboliska signalnamnet kan användas. (Endast pkill.)
-
-c, --count
- Utelämna normal utmatning; skriv istället
antalet processer som matchar. När antalet inte matchar
något, d.v.s. returnerar noll, kommer kommandot returnera ett
värde skilt från noll. Observera att för pkill och
pidwait är numret antalet matchande processer, inte processerna som
man lyckades skicka en signal till eller vänta på.
-
-d, --delimiter avgränsare
- Sätter strängen som används för
att avgränsa varje process-ID i utdata (nyrad som standard).
(Endast pgrep.)
-
-e, --echo
- Visa namnet och PID processen som dödas. (Endast
pkill.)
-
-f, --full
-
Mönstret matchas normalt endast mot
processnamnet. När -f anges används hela
kommandoraden.
-
-g, --pgroup pgrp,…
- Matcha endast processer i de processgrupper vars ID listas.
Processgrupp 0 översätts till pgreps, pkills
eller pidwaits egen processgrupp.
-
-G, --group gid,…
- Matcha endast processer vars verkliga grupp-ID listas.
Både det numeriska och det symboliska värdet kan
användas.
-
-i, --ignore-case
- Matcha processer skiftlägesokänsligt.
-
-l, --list-name
- Lista processnamnet såväl som process-ID:t.
(Endast pgrep.)
-
-a, --list-full
- Lista den fullständiga kommandoraden
såväl som process-ID:t. (Endast pgrep.)
-
-n, --newest
- Välj endast den nyaste (senast startade) av de
matchande processerna.
-
-o, --oldest
- Välj endast den äldsta (minst nyligen
startade) av de matchande processerna.
-
-O, --older sekunder
- Välj processer som är äldre än
sek.
-
-P, --parent fpid,…
- Matcha endast processer vars
föräldraprocess-ID listas.
-
-s, --session sid,…
- Matcha endast processer vars processessions-ID listas.
Sessions-ID 0 översätts till pgreps, pkills
eller pidwaits eget sessions-ID.
-
-t, --terminal term,…
- Matcha endast processer vars styrande terminal listas.
Terminalnamnet skall anges utan prefixet ”/dev/”.
-
-u, --euid eaid,…
- Matcha endast processer vars effektiva användar-ID
listas. Både det numeriska och symboliska värdet kan
användas.
-
-U, --uid aid,…
- Matcha endast processer vars verkliga användar-ID
listas. Både det numeriska och symboliska värdet kan
användas.
-
-v, --inverse
- Negerar matchningen. Denna flagga används oftast i
pgreps eller pidwaits sammanhang. I pkills sammanhang
är den korta flaggan avaktiverad för att undvika att flaggan
används av misstag.
-
-w, --lightweight
- Visar alla tråd-id:n istället för
pid:n i pgreps eller pidwaits sammanhang. I pkills
sammanhang är denna flagga avaktiverad.
-
-x, --exact
- Matcha endast processer vars namn (eller kommandorader om
-f anges) exakt matchar mönstret.
-
-F, --pidfile fil
- Läs PID:n från en fil. Denna
flagga är mer användbar för pkill eller
pidwait än pgrep.
-
-L, --logpidfile
- Misslyckas om pid-filen (se -F) inte är
låst.
-
-r, --runstates D,R,S,Z,…
- Matcha endast processer som matchar
processtillståndet.
-
-A, --ignore-ancestors
- Ignorera alla förfäder till pgrep,
pkill eller pidwait. Till exempel kan detta vara
användbart när man höjer med sudo eller
liknande verktyg.
-
--cgroup namn,…
- Matcha det givna styrgruppsnamnet (cgroup) v2. Se
cgroups(8)
-
--ns pid
- Matcha processer som hör till samma namnrymder.
Måste köras som root för att matcha andra
användares processer. Se --nslist för hur man
begränsar vilka namnrymder som skall matchas.
-
--nslist namn,…
- Matcha endast de angivna namnrymderna. Tillgängliga
namnrymder: ipc, mnt, net, pid, user, uts.
-
-q, --queue värde
- Använd sigqueue(3) istället för
kill(2) och värdeargumentet används för att
ange ett heltal att skickas med signalen. Om den mottagande processen har
installerat en hanterare för denna signal med flaggan SA_SIGINFO
till sigaction(2) så kan den hämta denna data via
fältet si_value i posten siginfo_t.
-
-V, --version
- Visa versionsinformation och avsluta.
-
-h, --help
- Visa hjälp och avsluta.
- mönster
- Specificerar ett utökat reguljärt uttryck att
matcha mot processnamnen eller kommandoraderna.
Exempel 1: Hitta process-ID:t för demonen
named:
- $ pgrep -u root named
Exempel 2: Få
syslog att läsa om sin konfigurationsfil:
- $ pkill -HUP syslogd
Exempel 3: Ge detaljerad information om alla
xterm-processer:
- $ ps -fp $(pgrep -d, -x xterm)
Exempel 4: Få alla
chrome-processer köra med nice:
- $ renice +4 $(pgrep chrome)
- 0
- En eller flera processer matchar kriterierna. För
pkill och pidwait måste även en eller flera processer
framgångsrikt ha signalerats.
- 1
- Inga processer matchade eller inga av dem kunde
signaleras.
- 2
- Syntaxfel på kommandoraden.
- 3
- Ödesdigert fel: slut på minne etc.
Processnamnet som används för att matcha är
begränsat till de 15 tecknen som är med i utdata från
/proc/
pid/stat. Använd flaggan
-f för att matcha
mot den fullständiga kommandoraden, /proc/
pid/cmdline.
Trådar behöver inte ha samma processnamn som
föräldraprocessen men kommer ha samma kommandorad.
Den körande
pgrep-,
pkill- eller
pidwait-processen
kommer aldrig rapportera sig själv som en matchning.
Flagga
-O --older kommer tyst misslyckas om /proc är monterat med
flaggan
subset=pid.
Flaggorna
-n och
-o och
-v kan inte kombineras.
Berätta för mig om du behöver kunna göra detta.
Döda (defunct) processer rapporteras.
pidwait behöver systemanropet
pidfd_open(2) som
först dök up i Linux 5.3.
ps(1),
regex(7),
signal(7),
sigqueue(3),
killall(1),
skill(1),
kill(1),
kill(2),
cgroups(8)
Kjetil Torgrim Homme
Skicka felrapporter till
[email protected]
Skicka synpunkter på översättningen till
[email protected]