Linux procesų valdymas

Linux procesų valdymas 1

Skaitymo laikas: 2 minutės

Tekstas atnaujintas: 2020-05-05

Dar vienas įrašas apie Linux pasaulį bei programų ir procesų valdymą.

Kaip ir praeitame įraše daug mandrybių nebus, dauguma dalykų manau jau žinoma tiems kas naudojasi /dirba prie šios sistemos.

Prenumeruok 🤟

Gauk į paštą žinutę apie naujus įrašus 👍

Ieškome proceso

Praeitame įraše apie htop užsiminiau, tai pid galime ir su htop sužinoti, bei kitais būdais.

Norint sužinoti visų procesų pid’us vedame:

ps -A

Arba jeigu žinome proceso pavadinimą galime vesti taip:

pidof php-fpm

Arba galime atfiltruoti su grep

ps aux | grep php-fpm

Žudome procesus

Reikia turėti omeny jog vartotojas kuris sukuria procesą jį gali ir nužudyti, jeigu mėginama stabdyti kitą procesą negu vartotojas paleido, sistema to neleis, visus procesus gali žudyti tik root vartotojas, net svarbiausius sisteminius procesus.

Būna jog procesai pakimba arba tiesiog reikia priverstinai sustabdyti ir greitai.

Tai patogiausiai daryti yra naudojant htop programą.

Realiai susirandame proceso pavadinimą, paspaudžiame ant jo ir tada apačioje randame Kill arba paspaudus F9.

Arba jeigu sistemoje turime tik top, galime pažiūrėti koks procesas sunaudoja visus resursus ir mums reikės pid skaičiaus.

Sužinojus pid, tiesiog rašome terminale kill pid-skaičius.

Sistema automatiškai sunaikins procesą.

Kadangi htop turi ir paiešką, tai dažniausiai naudoju htop.

Kartais procesai prikuria daug papildomų procesų, juos galima stabdyti su killall komanda.

killall mysqld

Tikriname ar procesas buvo sunaikintas:

ps -aux | grep php-fpm

Systemctl

Šių dienų Liniux sistemose programas galima startuoti su systemctl komanda bei jas stabdyti.

Startuoti naudojame:

systemctl start nginx

Stabdyti:

systemctl stop nginx

Norint patikrint ar veikia procesas vedame:

systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-04-11 14:11:22 EEST; 1 weeks 1 days ago
Main PID: 986 (nginx)
Tasks: 2 (limit: 9382)
Memory: 11.7M
CGroup: /system.slice/nginx.service
├─ 986 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;
└─426583 nginx: worker process

Gauname informaciją jog procesas yra aktyvus nes rašo running, taip pat procesas startuoja nes rašo enabled.

Jeigu norime jog procesas nebūtų paleistas startuojant sistemai:

systemctl disable nginx

Norint jog startuotų:

systemctl enable nginx

Duodame procesui prioritetą

Kaip ir Windows sistemoje galime priskirti prioritetus procesui.

Tarkime yra koks procesas kuris negali būti nužudomas, mano atveju tai bus Qemu.

Neseniai pasileidau savo NUC’e virtualią mašiną kurioje dirba Windows 10 sistema.

Kadangi NUC su Celeronu ir daug smarvės neturi, tai kai trūksta resursų kartais.

Tada sistema sumąsto jog reikia nužudyti Qemu procesą ko pasekoje išsijungia VM.

Tad priskyriau didžiausią prioritetą jog Qemu paliktų ramybėjė.

Jog tai padaryti reikės mums pid skaičiaus. Kurį jau žinome, kaip sužinoti.

Dabar naudosime renice komandą.

Renice komandai reikia nurodyti skaičių kuris turi būti nuo -20 iki 19.

-20 skaičius nurodo jog nereikia duoti prioriteto ir taip skaičius kyla iki 19. Skaičius gali būti ir 1 ar 2 ar 3 ir t.t.

Vedame komandą:

renice 19 -p pid_skaičius

Tada naudojant top ar htop reikia tikrint NI grafą ir turime matyti prioriteto skaičių prie proceso.


Kaip tu tvarkaisi su procesais? žinau jog yra mandresnių bairių ?

Ar patiko įrašas?

Spausk jog įvertinti.

Vidutinis įvertinimas / 5. Įvertino:

Įvertinimų nėra, būk pirmas!

Jeigu įrašas patiko...

Pasidalink!

Jeigu įrašas nepatiko.

Padėk patobulinti įrašą!

Būtų malonu sužinoti kodėl?


Jeigu patiko įrašas, siūlau prenumeruoti, kaip tai padaryti aprašiau čia (el. paštu, telegram ir discord kanalai, facebook, twitter).

Gal patiks ir kiti įrašai