CodeGym /Kurslar /Docker SELF /Servislərə nəzarətin əsasları: systemctl komandaları (ser...

Servislərə nəzarətin əsasları: systemctl komandaları (servislərin işə salınması, dayandırılması, yenidən işə salınması)

Docker SELF
Səviyyə , Dərs
Mövcuddur

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, systemctlsystemd 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

  1. Xidmətin işə salınması: xidmət deaktiv edilibsə, onu işə salmağa imkan verir.
  2. Xidmətin dayandırılması: xidmətin işini dayandırır.
  3. Xidmətin yenidən başladılması: əvvəlcə dayandırır, sonra xidməti yenidən işə salır.
  4. 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.

  1. cron xidmətini işə salın:

    sudo systemctl start cron
    
  2. Onun işləyib-işləmədiyini yoxlayın:

    sudo systemctl status cron
    

    Statusun "active (running)" olduğuna əmin olun.

  3. cron xidmətini dayandırın:

    sudo systemctl stop cron
    

    Statusun "inactive (dead)" olaraq dəyişdiyinə əmin olun.

  4. 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:

  1. Active (running) — xidmət aktiv şəkildə işləyir; hər şey qaydasındadır.
  2. Inactive (dead) — xidmət dayandırılıb.
  3. 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!

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION