systemd
systemd nedir?
systemd’i Lennart Poettering ve Kay Sievers yazdı. İlk yayın 2010’dur. Birçok Linux dağıtımı açılışta onu başlatır. Ubuntu da onlardandır. Her hizmetin unit dosyası vardır. En çok görülen son .service’tir. systemctl start hizmeti şimdi açar. systemctl enable onu sonraki açılışa bağlar. Bu ikisi aynı değildir. Günlüğü journalctl gösterir. Çekirdek donanımla konuşur. systemd ise çekirdek açıldıktan sonra hizmetlerin sırasını tutar. Alpine gibi bazı sistemler onu kullanmaz.
systemd ne için kullanılır?
systemd sitenin, tabanın ve arka plan programının hep açık kalması içindir.
- Web sunucusunu açılışta başlatmak
- Düşen hizmeti yeniden kaldırmak
- Günlükte son hatayı okumak
- Bir hizmeti diğerinden sonra açmak
systemd ile ne yapılabilir?
systemd ile hizmeti açıp kapatır, açılışa bağlar ve günlüğü okursun. Programın kodunu yazmaz. Yol veya kullanıcı yanlışsa hizmet düşer. enable etmeden start etmek yalnız şimdi açar. Makine kapanınca o hizmet kendi dönmez.
systemd öğrenmek zor mu?
Bir start komutu kolaydır. Zorluk unit dosyasının yolundadır. Programın tam yolu yazılmazsa systemd onu bulamaz. Çalışma klasörü senin terminal klasörün olmayabilir. Restart yanlış kurulunca düşen program ara vermeden yeniden açılır ve günlüğü doldurur. Alpine’de systemctl yoksa komut başka araca aittir.
Avantajları ve sınırları
Avantaj: açılış sırası bir yerdedir, düşen hizmet kaldırılabilir, günlük ayrıca okunur. Sınır: her Linux’ta yoktur ve unit hatası hizmeti sessiz tutar. systemd çekirdek değildir ve cron değildir.
Temel kavramlar
Unit hizmetin dosyasıdır. start şimdi açar. enable sonraki açılışa yazar.
- systemctl status durumu gösterir
- journalctl günlüğü okur
- .service en çok görülen unit’tir
- Çekirdek systemd’den önce açılır
Kısa örnek
Bu komut bir hizmetin şimdi açık olup olmadığını gösterir. Onu yaratmaz.
systemctl status nginx
Sık sorulan sorular
- systemd ve Linux çekirdeği aynı mı? Hayır. Çekirdek donanımla konuşur. systemd hizmetlerin sırasını tutar.
- systemd ve cron aynı mı? Hayır. cron vakti gelince komut çağırır. systemd hizmeti açık tutar.
- start ve enable aynı mı? Hayır. start şimdi açar. enable sonraki açılışa bağlar.