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. Antingen det
numeriska eller det symboliska signalnamnet kan användas. I
pgrep- eller pidwait-läge endast kan flaggan long
användas och har ingen effekt om det inte används tilsammans
med filtret --require-handler för att filtrera ut processer
där det finns en signalhanterare i användarrymden för
en viss signal.
- -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.
- -H,
--require-handler
- Matcha endast processer där det finns en signalhanterare i
användarrymden för signalen som skall skickas.
- --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).