Puncte:1

pkill nu ucide

drapel tm

Am încercat să opresc un proces folosind pkill -9 <pid>

Ori de câte ori rulez acea comandă, nu returnează nimic și nici procesul nu este oprit.

Cum procedez acum?

Editați | ×:

Am fost prost încercând să folosesc pkill cu pid. pkill ia numele procesului nu pid. ucide este comanda care ia pid așa cum este subliniat în răspunsul acceptat.

Cu toate acestea, celălalt răspuns real face o treabă bună explicând posibilitatea reală de a nu ucide pkill și este foarte bine scris.

pierrely avatar
drapel cn
ucidere alternativă -9 și poate rulați ca sudo. puteți obține și „$(pidof )" când aveți nevoie de un număr și este posibil să obțineți mai multe (cum ar fi Firefox și fereastra managerului de descărcare, atunci trebuie să treceți prin matrice din acel pidof
Puncte:6
drapel bd

Dacă îmi amintesc corect (nu îl folosesc niciodată) pkill folosește numele procesului, nu PID-ul. pentru a utiliza PID, utilizați kill în loc de pkill.

user10489 avatar
drapel in
Buna observatie. Un proces nu va muri dacă ratați când încercați să-l ucideți. pkill caută de obicei doar numele comenzii. pkill -a sau -f caută și argumentele comenzii, dar acest lucru este periculos și poate ucide prea mult. Vă sugerez să utilizați pgrep înainte de pkill pentru a vedea dacă de fapt potriviți ceva.
Puncte:4
drapel in

Există exact trei motive pentru care kill -9 nu va ucide un proces. (Paginile vechi de manual au etichetat acest lucru drept „Ucide cu prejudecăți extreme”. Un proces nu poate evita -9, ci doar întârzie moartea acestuia.)

Puteți verifica procesul cu ps -O stat -p 1234 de exemplu. Examinați coloana de stare (S):

Cele trei motive pentru care un proces nu moare imediat din -9 sunt:

  • E deja mort -- este un zombie. (status=Z) Va dispărea când părintele său îl așteaptă (și colectează zombiul) sau procesul părinte însuși moare.
  • Este blocat într-un dispozitiv de așteptare. (starea=D) Singura modalitate de a le ucide este să faceți dispozitivul să-l elibereze sau să repornească. Acest lucru poate necesita așteptarea sau manipularea fizică a dispozitivului sau un alt mod în afara benzii pentru a „locui” dispozitivul blocat. (Și, în cazuri rare, o repornire va eșua și se va bloca, iar va trebui să porniți.)
  • Este suspendat (status=T), caz în care kill -9 îl ucide, dar de fapt nu moare până când procesul este reluat (kill -CONT)

Comanda kill returnează de fapt ceva, deși dacă reușește, nu imprimare orice. Toate comenzile au o valoare returnată. Puteți verifica cu eco $? imediat după rularea comenzii. Dacă valoarea returnată este 0, distrugerea a reușit și nu se tipărește nimic. Orice altă valoare este o eroare și ar trebui să imprime eroarea; posibilele erori pot fi Permisiune refuzată (sau operațiune nepermisă) și Nu există un astfel de proces. pkill are câteva erori care sunt puțin mai interesante.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.