Systemd nedir?

systemd, Linux tabanlı işletim sistemleri için sistem komponentleri sağlayan bir sistem yazılımıdır. Linux sistemi için temel yapı taşları paketidir. PID 1 olarak çalışan ve sistemin geri kalanını başlatan bir sistem ve hizmet yöneticisi sağlar. systemd, agresif paralelleştirme yetenekleri sağlar, hizmetleri başlatmak için soket ve D-Bus etkinleştirmesini kullanır, isteğe bağlı arka plan programlarının başlatılmasını sağlar, Linux kontrol gruplarını kullanarak süreçleri takip eder, bağlama ve otomatik bağlama noktalarını korur ve ayrıntılı bir işlem bağımlılığı tabanlı hizmet denetimi uygular mantık. systemd, SysV ve LSB başlatma komut dosyalarını destekler ve sysvinit'in yerine geçer.

Diğer parçalar arasında bir günlük arka plan programı, ana bilgisayar adı, tarih, yerel ayar gibi temel sistem yapılandırmasını kontrol etmeye yönelik yardımcı programlar, oturum açmış kullanıcıların ve çalışan kapsayıcıların ve sanal makinelerin bir listesini koruma, sistem hesapları, çalıştırma zamanı dizinleri ve ayarları ve basit ağı yönetmek için arka plan programları bulunur. Yapılandırma, ağ zaman senkronizasyonu, günlük iletme ve ad çözümlemesi.

Systemd’in ana görevlerinden biri aslında daemon olmasıdır. Sonundaki d harfinden bunu anlayabiliriz. Daemon yani, arka plan programı otomatik başlatılan, arka planda çalışıp kullanıcı ile interaktif iletişimde bulunmayan, sürekli çalışan programlardır. Genelde bir olayı beklerler ve o olay olduğunda ona cevap olarak çeşitli işlemler yaparlar.

systemd şu anda,  systemd tarafından birimler olarak adlandırılan sistem kaynaklarını ve hizmetlerini yönetmek için en yaygın kullanılan araçlar kümesidir. Bir birim, bir ad, bir tür ve karşılık gelen bir yapılandırma dosyasından oluşur. Örneğin, Red Hat tabanlı dağıtımlarda bir httpd sunucu (Apache web sunucusu gibi) işlemi için httpd.service olacak ve yapılandırma dosyası da çağrılacaktır. Ancak Debian tabanlı dağıtımlarda bu birim  Apache2.service olarak adlandırılır.

  1. service = Başlatılabilen, kesilebilen ve yeniden yüklenebilen aktif sistem kaynakları için en yaygın birim türü.
  2. socket = Soket birimi türü, bir dosya sistemi soketi veya bir ağ soketi olabilir. Tüm soket birimleri, soket bir istek aldığında yüklenen ilgili bir hizmet birimine sahiptir.
  3. device = Bir aygıt birimi, çekirdek tarafından tanımlanan bir donanım aygıtıyla ilişkilendirilir. Bir cihaz, yalnızca bu amaç için bir udev kuralı varsa, sistemd birimi olarak alınacaktır. Udev kuralından gelen özelliklerin cihaz birimi için parametre olarak kullanılabilmesi koşuluyla, belirli donanım algılandığında yapılandırma bağımlılıklarını çözmek için bir cihaz birimi kullanılabilir.
  4. mount = Bir bağlama birimi, /etc/fstab dosya sistemindeki bir girişe benzer şekilde bir bağlama noktası tanımıdır.
  5. automount = Bir otomatik bağlama birimi de dosya sisteminde bir bağlama noktası tanımıdır, ancak otomatik olarak monte edilir. Her otomatik bağlama birimi, otomatik bağlama bağlama noktasına erişildiğinde başlatılan karşılık gelen bir bağlama birimine sahiptir.
  6. target = Hedef birim, tek bir birim olarak yönetilen diğer birimlerin gruplandırılmasıdır.
  7. snapshot = Anlık görüntü birimi, sistem yöneticisinin kaydedilmiş bir durumudur (her Linux dağıtımında bulunmaz).

Systemd birimlerini kontrol etmek için ana komut systemctl'dir.Komut systemctl, birim etkinleştirme, devre dışı bırakma, yürütme, kesinti, izleme vb. İle ilgili tüm görevleri yürütmek için kullanılır.

Birim dosyalarının yazılması

systemd’de unitler sistemin yönetebildiği herhangi bir kaynağa denir. Farklı tip unitler mevcuttur. systemd'nin birim dosyalarının sözdizimi , sırasıyla Microsoft Windows .ini dosyalarından ilham alan XDG Desktop Entry Spesifikasyonu .desktop dosyalarından esinlenmiştir. Birim dosyaları birden fazla konumdan yüklenir. Unitlerin tutulduğu tüm pathleri görmek için bu komutu kullanabilirsiniz.

 systemctl show --property=UnitPath 
  • /usr/lib/systemd/system/: kurulu paketler tarafından sağlanan birimler
  • /etc/systemd/system/: sistem yöneticisi tarafından kurulan birimler
Blog'a Dön