pgrep [opțiune ...] model
pkill [opțiune ...] model
pidwait [opțiune ...] model
pgrep examinează procesele care rulează
în prezent și listează ID-urile proceselor care
corespund criteriilor de selecție la ieșirea standard. Toate
criteriile trebuie să se potrivească. De exemplu,
- $ pgrep -u root sshd
va lista numai procesele ale căror nume includ sshd
ȘI care sunt deținute de root. Pe de altă
parte,
- $ pgrep -u root,daemon
va lista procesele deținute de root SAU
daemon.
pkill va trimite semnalul specificat (în mod
implicit SIGTERM) către fiecare proces în loc să
le listeze la ieșirea standard.
pidwait va aștepta pentru fiecare proces în
loc să le listeze la ieșirea standard.
- -semnal
- --signal
semnal
- Definește semnalul care urmează să fie trimis
fiecărui proces asociat. Se poate utiliza fie numele numeric, fie
numele simbolic al semnalului. În modul pgrep sau
pidwait, se poate utiliza numai opțiunea lungă, care
nu are niciun efect, cu excepția cazului în care este
utilizată împreună cu --require-handler pentru
a filtra procesele care au un gestionar de semnal în spațiul
utilizatorului pentru un anumit semnal.
- -a,
--list-full
- Listează linia de comandă completă, precum și
ID-ul procesului; (numai pgrep).
- -A,
--ignore-ancestors
- Ignoră toți antecesorii lui pgrep, pkill
și pidwait. De exemplu, acest lucru poate fi util atunci
când escaladați drepturile de acces folosind sudo sau
instrumente similare.
- -c, --count
- Suprimă ieșirea normală; în schimb,
afișează un număr de procese de potrivire.
Când numărul nu corespunde cu nimic, de exemplu
returnează zero, comanda va returna o valoare diferită de
zero. Rețineți că pentru pkill și pidwait,
numărul este numărul de procese de potrivire, nu procesele
care au fost semnalate cu succes sau așteptate.
- -d, --delimiter
delimitator
- Stabilește șirul utilizat pentru a delimita fiecare ID de
proces din ieșire (în mod implicit, o linie nouă);
(numai pgrep).
- -e, --echo
- Afișează numele și PID-ul procesului în curs
de omorâre; (numai pkill).
- -f, --full
- modelul se potrivește în mod normal doar cu numele
procesului. Când este dată opțiunea -f, se
utilizează linia de comandă completă.
- -F, --pidfile
fișier
- Citește PID-urile din fișier. Această
opțiune este mai utilă pentru pkill sau
pidwait decât pentru pgrep. Numele de fișier
„-” poate fi utilizat pentru a citi de la STDIN
(intrarea standard). În conflict cu opțiunea
--pid.
- -g, --pgroup
pgrp,...
- Potrivește numai procesele din ID-urile grupului de procese
enumerate. Grupul de procese 0 este convertit în grupul de procese
propriu al lui pgrep, pkill sau pidwait.
- -G, --group
gid,...
- Potrivește numai procesele al căror ID de grup real este
listat. Se poate folosi fie valoarea numerică, fie valoarea
simbolică.
- -H,
--require-handler
- Se potrivește numai cu procesele care au un gestionar de semnal din
spațiul utilizatorului prezent pentru semnalul care urmează
să fie trimis.
- -i,
--ignore-case
- Potrivește procesele fără a ține seama de
diferența dintre majuscule și minuscule.
- -l,
--list-name
- Listează numele procesului, precum și ID-ul procesului;
(numai pgrep).
- -L,
--logpidfile
- Eșuează dacă fișierul pid (a se vedea
-F) nu este blocat.
- -m,
--mrelease
- După trimiterea semnalului, invocă apelul de sistem
process_mrelease() pentru a elibera imediat memoria procesului
țintă.
- -n, --newest
- Selectează doar cel mai nou (cel mai recent început) dintre
procesele care s-au potrivit modelului dat.
- -o, --oldest
- Selectați doar cel mai vechi (cel mai puțin recent)
început dintre procesele care s-au potrivit modelului dat.
- -O, --older
secunde
- Selectează procesele mai vechi de secunde secunde.
- -p, --pid
pid,...
- Potrivește doar procesele al căror ID de proces
părinte este listat. În conflict cu opțiunea
--pidfile.
- -P, --parent
ppid,...
- Potrivește doar procesele al căror ID de proces
părinte este listat.
- -q, --queue
valoare
- Trimite numărul întreg valoare împreună
cu semnalul. Această opțiune va utiliza fie
pidfd_send_signal(2) cu o valoare aplicată, fie
sigqueue(3) în locul kill(2). Dacă procesul
receptor a instalat un gestionar pentru acest semnal utilizând
fanionul SA_SIGINFO pentru sigaction(2), atunci poate obține
aceste date prin câmpul si_value al structurii siginfo_t.
- -Q,
--shell-quote
- Afișează linia de comandă în forma
citată a shell-ului; (numai pgrep).
- -r, --runstates
D,R,S,Z,...
- Potrivește numai procesele care se potrivesc cu starea
procesului.
- -s, --session
sid,...
- Potrivește doar procesele al căror ID de sesiune de proces
este listat. ID-ul de sesiune 0 este convertit în ID-ul de sesiune
al lui pgrep, pkill sau pidwait.
- -t, --terminal
terminal,...
- Potrivește numai procesele al căror terminal de control este
listat. Numele terminalului trebuie specificat fără prefixul
„/dev/”.
- -u, --euid
uid_efectiv,...
- Potrivește numai procesele al căror ID de utilizator efectiv
este listat. Se poate folosi fie valoarea numerică, fie valoarea
simbolică.
- -U, --uid
uid,...
- Potrivește numai procesele al căror ID de utilizator real
este listat. Se poate folosi fie valoarea numerică, fie valoarea
simbolică.
- -v, --inverse
- Inversează rezultatul potrivirii(va afișa toate procesele ce
NU se potrivesc cu modelul). Această opțiune este de obicei
folosită în contextul lui pgrep sau pidwait.
În contextul lui pkill, opțiunea scurtă este
dezactivată pentru a evita utilizarea accidentală a
opțiunii.
- -w,
--lightweight
- Afișează toate ID-urile firelor de execuție în
loc de id-urile proceselor în contextul lui pgrep sau
pidwait. În contextul lui pkill, această
opțiune este dezactivată.
- -x, --exact
- Potrivește numai procesele ale căror nume (sau linii de
comandă dacă este specificată opțiunea
-f) se potrivesc exact cu modelul.
- --cgroup
nume,...
- Potrivește pe numele grupului de control (cgroup) v2 furnizat. A se
vedea cgroups(7)
- --env
nume[=valoare],...
- Se potrivește cu procesele care au aceste variabile de mediu.
Dacă parametrul =valoare nu este definit, atunci numai
numele variabilei este comparat.
- --ns pid
- Potrivește procesele care aparțin acelorași
spații de nume. Este necesar să ruleze ca root pentru a
potrivi procesele de la alți utilizatori. Consultați
--nslist pentru cum să limitați spațiile de
nume care să corespundă.
- --nslist
nume,...
- Potrivește numai spațiile de nume furnizate. Spațiile
de nume disponibile, sunt: ipc, mnt, net, pid, user, uts.
- --quiet
- Nu scrie nimic la ieșirea standard (numai pgrep).
- -V, --version
- Afișează informațiile despre versiune și
iese.
- -h, --help
- Afișează mesajul de ajutor și iese.
- model
- Specifică o expresie regulată extinsă pentru
potrivirea cu numele proceselor sau liniile de comandă.
Exemplul 1: Găsiți ID-ul de proces al demonului
named:
- $ pgrep -u root named
Exemplul 2: Face ca syslog să recitească
fișierul său de configurare:
- $ pkill -HUP syslogd
Exemplul 3: Oferă informații detaliate despre toate
procesele bash:
- $ ps -fp $(pgrep -d, -x bash)
Exemplul 4: Face ca toate procesele chrome să ruleze
cu o valoare „nice”, incrementată (să ruleze cu
o prioritate mai mică):
- $ renice +4 $(pgrep chrome)
Exemplul 5: Așteaptă ca un proces cu un PID cunoscut
să finalizeze:
- $ echo ${PID} | pidwait -F -
- 0
- Unul sau mai multe procese s-au potrivit cu criteriile. Pentru
pkill și pidwait, unul sau mai multe procese trebuie,
de asemenea, să fi fost semnalate sau așteptate cu
succes.
- 1
- Niciun proces nu s-a potrivit sau niciunul dintre ele nu a putut fi
semnalat.
- 2
- Eroare de sintaxă în linia de comandă.
- 3
- Eroare fatală: memorie insuficientă, etc.
Numele procesului folosit pentru potrivire este limitat la cele 15
caractere prezente în ieșirea /proc/pid/stat.
Utilizați opțiunea -f pentru a se potrivi cu linia de
comandă completă, /proc/pid/cmdline. Este posibil ca
firele de execuție să nu aibă același nume de
proces ca și procesul părinte, dar vor avea aceeași
linie de comandă.
Procesul care rulează pgrep, pkill sau
pidwait nu se va raporta niciodată ca o potrivire.
Opțiunea -O --older va eșua în
tăcere dacă /proc este montat cu opțiunea
subset=pid.
pkill va încerca să utilizeze
pidfd_send_signal(2) în loc de kill(2) sau
sigqueue(3) pentru a trimite un semnal procesului țintă
dacă poate obține descriptorul de fișier al
procesului.
Opțiunile -n și -o și -v
nu pot fi combinate. Anunțați autorii, dacă
credeți că este necesar să faceți acest
lucru.
Dacă procesele pornesc în același interval de
timp (de obicei, dar nu întotdeauna, o sutime de secundă),
opțiunile -n și -o nu vor putea distinge care
proces a pornit în același interval de timp și pot da
rezultate eronate.
Sunt raportate procesele defuncte.
pidwait necesită apelul de sistem
pidfd_open(2) care a apărut pentru prima dată în
nucleul Linux versiunea 5.3.
killall(1), kill(1), ps(1), skill(1),
kill(2), sigaction(2), pidfd_open(2),
pidfd_send_signal(2), sigqueue(3), cgroups(7),
regex(7), signal(7)