Servislərə nəzarətin əsasları: systemctl
komandaları (servislərin işə salınması, dayandırılması, yenidən işə salınması)
1. Linux-da xidmətlər nədir?
Xidmətlər — istənilən müasir Linux distribusiya sisteminin əsasını təşkil edir. Nginx ilə öz web-serverinizi işə salmaq istəyirsiniz? Uyğun xidməti işə salıb qurun. MySQL verilənlər bazasının işləməsini istəyirsiniz? Yenə xidmət. Hətta sizin sevdiyiniz cron
, hansı ki, tərifəlayiq bash script'ləri işə salacaq, — bu da xidmətdir. Xidmətlərin idarə olunması — yalnız işdə deyil, həm də şəxsi layihələrinizdə tətbiq edəcəyiniz bir bacarıqdır. Əslində, müsahibələrdə "Xidməti necə dayandıracaqsan?" sualı düşündüyünüzdən daha tez-tez rast gəlinir.
Tərif və rol
Linux-da xidmət — arxa planda işləyən bir proqramdır (yəni "daemon", ingilis dilindən). Bu proqramlar sistem yüklənərkən avtomatik açılır və ya lazım olduqda əl ilə işə salınır. Onlar müəyyən vəzifələri yerinə yetirirlər, məsələn:
- Web-istəkləri təmin etmək (məsələn,
nginx
/apache
). - Uzaqdan qoşulma dəstəyi (məsələn,
openssh
). - Tapşırıqları qrafik üzrə işlətmək (məsələn,
cron
).
Əslində, xidmətlər — sistemin işləməsi üçün gözlə görünməyən, amma tamamilə kritik olan tapşırıqları yerinə yetirən "işçi atlar"dır.
2. Xidmətlərin idarəsi üzrə əsaslar systemctl
ilə
systemctl
nədir?
Əvvəlcə qeyd edək ki, systemctl
— systemd istifadə edən sistemlərdə xidmətləri idarə etmək üçün əsas komandadır. Əgər sisteminiz müasir Linux distributivinə (məsələn, Ubuntu, Fedora və ya CentOS) əsaslanırsa, çox güman ki, o, systemd
istifadə edir.
Əsas funksiyalar
- Xidmətin işə salınması: xidmət deaktiv edilibsə, onu işə salmağa imkan verir.
- Xidmətin dayandırılması: xidmətin işini dayandırır.
- Xidmətin yenidən başladılması: əvvəlcə dayandırır, sonra xidməti yenidən işə salır.
- Statusun yoxlanılması: xidmətin cari vəziyyətini öyrənir.
Komandanın əsas strukturu belədir:
sudo systemctl [əməliyyat] [xidmətin_adı]
Xidmətin işə salınması və dayandırılması
İşə salınma:
Fərz edin ki, nginx
veb serverini quraşdırmısınız və onu işə salmaq istəyirsiniz. Bunun üçün start
komandasını istifadə edirik:
sudo systemctl start nginx
Dayandırılma:
Bəs, veb serveri müvəqqəti olaraq dayandırmaq istəyirsiniz? stop
komandası bu işdə köməyinizə çatacaq:
sudo systemctl stop nginx
Xidmətin yenidən başladılması
Yenidən başladılma konfiqurasiya dəyişikliklərinin tətbiqi və ya sadəcə xidməti "təzələmək" üçün lazımdır (kobud desək, ona qəhvə verib, işləməli olduğunu xatırlatmaq). Bunun üçün restart
komandasını istifadə edin:
sudo systemctl restart nginx
Statusun yoxlanılması
Əmin deyilsiniz ki, nginx
işləyirmi? status
komandası sizə ətraflı məlumat təqdim edəcək:
sudo systemctl status nginx
Nəticədə siz aşağıdakı məlumatları görəcəksiniz:
- Prosesin unikal identifikatoru (PID).
- İşə salınma vaxtı.
- Hər hansı bir problem olarsa, səhv qeydləri.
Məsələn, belə bir çıxış görəcəksiniz:
nginx.service - A high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-11-01 09:00:00 UTC; 10min ago
...
3. Xidmətlərin avtomatik işə salınması
Avtomatik işə salma aktiv edilməsi
Sistem hər dəfə başladığında xidmət avtomatik işə salınsın deyə, bu komandanı istifadə edin:
sudo systemctl enable nginx
Avtomatik işə salmanın deaktiv edilməsi
Əgər istəyirsiniz ki, xidmət artıq sistem yüklənərkən başlamasın:
sudo systemctl disable nginx
Avtomatik işə salmanın aktiv olub olmadığını yoxlamağın sadə bir yolu:
systemctl is-enabled nginx
Xidmətlərin idarə olunması üzrə praktika
Gəlin cron
xidməti nümunəsində kompleks bir məşq edək.
cron
xidmətini işə salın:sudo systemctl start cron
Onun işləyib-işləmədiyini yoxlayın:
sudo systemctl status cron
Statusun "active (running)" olduğuna əmin olun.
cron
xidmətini dayandırın:sudo systemctl stop cron
Statusun "inactive (dead)" olaraq dəyişdiyinə əmin olun.
cron
xidmətini yenidən işə salın:sudo systemctl restart cron
4. Aktiv, söndürülmüş və qəza ilə dayandırılmış xidmətlər arasındakı fərqlər
Xidmətlərin fərqli vəziyyətləri ola bilər. Onların əsas növləri aşağıdakılardır:
- Active (running) — xidmət aktiv şəkildə işləyir; hər şey qaydasındadır.
- Inactive (dead) — xidmət dayandırılıb.
- Failed — işə salınma, dayandırma və ya xidmətdə hər hansı bir problem baş verib.
Xəta vəziyyətində olan bütün xidmətləri tez bir zamanda tapmaq üçün bunlardan istifadə edin:
systemctl --failed
5. Tipik səhvlər və çətinliklər
Səhv: Unit not found
Əgər aşağıdakı mesajı alsanız:
Failed to start nginx.service: Unit nginx.service not found.
Bu o demək ola bilər ki, lazım olan xidmət ya quraşdırılmayıb, ya da onun adı düzgün göstərilməyib. Düzgün adı yoxlayın:
systemctl list-unit-files | grep nginx
İcazə səhvi
Əgər komandanı sudo
ilə işə salmağı unutsanız, çox güman ki, giriş məhdudiyyət mesajı alacaqsınız:
Permission denied
Komandaları systemctl
ilə işə salmazdan əvvəl sudo
əlavə etməyi unutmayın.
6. Real layihələrdə tətbiq
Xidmətlərin idarə edilməsi — Linux-la bağlı hər hansı bir rolda istifadə edəcəyiniz bir şeydir:
- DevOps: bütün sistem xidmətlərinin avtomatlaşdırılması və idarə olunması.
- Serverlərin administrasiyası: web-serverlərin, verilənlər bazalarının və digər xidmətlərin vəziyyətinə nəzarət.
- Linux-da inkişaf: layihənizlə əlaqəli xidmətləri necə idarə edəcəyinizi başa düşməlisiniz (məsələn, inkişaf serverlərinin işə salınması).
Beləliklə, systemctl
komandasını bilmək sadəcə abstrakt bir bacarıq deyil, real iş alətidir. Məsələn: veb-sayt yeniləməsindən sonra veb-serveri yenidən başlatmaq lazımdır? Bir dəfə sudo systemctl restart nginx
çağırışı edin — və tapşırıq həll olundu!
GO TO FULL VERSION