Kā atrast un apturēt procesu Linux — ps, kill, pkill
Lai apturētu procesu Linux, vispirms atrodiet tā PID (identifikatoru) ar komandām ps vai pgrep, pēc tam nosūtiet signālu ar kill. Apturēšanai pēc nosaukuma noder pkill un killall. Apskatīsim visu pēc kārtas.
1. solis. Atrodiet procesu
Parādīt visus procesus un atfiltrēt pēc nosaukuma ar grep:
ps aux | grep nginx
Izvadā otrā kolonna ir PID. Tiešāks veids ir pgrep, kas uzreiz atgriež identifikatorus:
pgrep -a nginx
Karogs -a rāda PID kopā ar komandrindu.
Ja process tur tīkla portu, atrodiet to pēc porta:
sudo ss -ltnp | grep :80
2. solis. Apturiet procesu pēc PID
Standarta komanda ir kill. Pēc noklusējuma tā sūta signālu TERM (15) — pieklājīgu lūgumu beigt darbu, ļaujot procesam saglabāt datus:
kill 12345
Ja process nereaģē, nosūtiet signālu KILL (9) — piespiedu apturēšanu bez iespējas saglabāties:
kill -9 12345
Vispirms vienmēr mēģiniet parasto kill, un tikai tad, ja process ir uzkāries, — -9.
Apturēšana pēc nosaukuma: pkill un killall
PID meklēt nav obligāti — procesu var apturēt pēc nosaukuma.
pkill strādā pēc daļējas nosaukuma sakritības:
pkill nginx
pkill -9 nginx
killall aptur visus procesus ar precīzu nosaukumu:
killall nginx
Esiet uzmanīgi: pkill php apturēs visus procesus, kuru nosaukumā ir php.
Apturēšana htop vidē
Grafiskais veids ir caur htop:
htop
Atrodiet procesu (taustiņš F3 meklēšanai), iezīmējiet to ar bultiņām un nospiediet F9. Izvēlieties signālu (parasti SIGTERM, pēc tam SIGKILL) un apstipriniet.
Galvenie signāli
| Signāls | Numurs | Darbība |
|---|---|---|
| SIGTERM | 15 | Maiga apturēšana (pēc noklusējuma) |
| SIGKILL | 9 | Piespiedu apturēšana |
| SIGHUP | 1 | Pārlasīt konfigurāciju / restarts |
| SIGINT | 2 | Pārtraukums (kā Ctrl+C) |
Pakalpojuma konfigurāciju bieži var pārlādēt bez apturēšanas šādi:
kill -HUP 12345
Kā atrast procesu, kas slogo sistēmu
Atrast rijīgāko procesu pēc CPU:
ps aux --sort=-%cpu | head
Pēc atmiņas:
ps aux --sort=-%mem | head
Biežāk uzdotie jautājumi
Ar ko kill -15 atšķiras no kill -9?
-15 (TERM) lūdz procesam korekti beigt darbu: aizvērt failus, saglabāt datus. -9 (KILL) nogalina uzreiz, process neko nepaspēj saglabāt. Sāciet ar -15.
Process nebeidz darbu pat ar -9. Ko darīt?
Tā mēdz būt ar procesiem stāvoklī D (nepārtraucams miegs, parasti gaidīšana uz disku). Tos nevar nogalināt, kamēr nav pabeigta ievadizvades operācija; dažreiz palīdz tikai pārstartēšana.
Kā apturēt procesu, zinot tikai portu?
Atrodiet PID ar sudo ss -ltnp | grep :PORTS, pēc tam kill PID. Vai ar vienu komandu: sudo fuser -k 80/tcp.
Vai killall lietošana ir bīstama?
Tas aptur visus procesus ar norādīto nosaukumu. Pārbaudiet sarakstu iepriekš ar pgrep -a nosaukums, lai neapturētu lieku.
Kopsavilkums
Saikne ps/pgrep meklēšanai un kill/pkill apturēšanai nosedz gandrīz visus procesu pārvaldības uzdevumus. Noteikums ir vienkāršs: vispirms maigais TERM, un tikai uzkārtušiem — KILL.
Pārvaldāt savu serveri? Paņemiet Linux VPS, noformējiet VPS nomu vai pasūtiet Serveru administrēšanu, ja monitoringu ērtāk uzticēt speciālistiem.