systemd, Linux sistemleri için temel yapı taşları setidir. Sistemin geri kalanını PID 1 olarak çalıştıran ve başlatan bir sistem ve servis yöneticisi sağlar.
systemd agresif paralelleştirme yetenekleri sağlar, hizmetleri başlatmak için soketler ve D-Bus aktivasyonu kullanır, daemonların talep üzerine başlatılmasını sağlar, süreçleri takip etmek için Linux kontrol gruplarını kullanır, montaj ve otomatik montaj noktalarını korur ve iyi tasarlanmış işlem bağımlılığına dayalı hizmet kontrol mantığını uygular. systemd, SysV ve LSB init betiklerini destekler ve sysvinit'in yerini alabilir.
Diğer bölümler arasında log daemonları, ana isimleri, tarihler, yerel ayarlar gibi temel sistem yapılandırmalarını kontrol eden yardımcı programlar, giriş yapmış kullanıcıların listesini tutmak ve çalıştıran konteynerler ile sanal makineler, sistem hesapları, çalışma zamanı dizinleri ve ayarlar, ayrıca basit ağlar için daemon yapılandırmalarının yönetimi, ağ zaman senkronizasyonu, günlük yönlendirme ve isim çözümleme yer alır.
systemd yapılandırma dosyası aşağıdaki üç klasörde mevcuttur:
/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。
/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。
/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。 Eleştiri:
Birim profili
systemd'deki birim dosyası, systemd'nin yönetebileceği çeşitli birimler hakkında, hizmetler, soketler, cihazlar gibi bilgileri kodlayan bir dosyadır. Bu rehber hizmetlere odaklanır; bu durumda çalıştığımız birim dosyası .service dosyasıdır. varnish.service cihaz yapılandırma dosyası, systemd'nin varnish daemon'u nasıl çalıştıracağı, izleyeceği ve yöneteceği hakkında bilgi içerir.
[Birim] bloğu genellikle yapılandırma dosyasının ilk bloğudur ve Birimin meta verisini ve diğer Birimlerle nasıl ilişkili olduğunu tanımlamak için kullanılır. Ana alanları şunlardır.
- Açıklama: Kısa bir açıklama
- Dokümantasyon: Belgenin adresi
- Mevcut birimin bağımlı olduğu diğer birimler gerektirir ve eğer çalışmazlarsa, mevcut ünite çalışmaz
- İstekler: Mevcut Birimle çalışan diğer Birimler, çalışmıyorlarsa, mevcut birim çalışmaz.
- BindsTo: Gereksinimlere benzer şekilde, mevcut Birimin çıkışında çalışmayı durdurmasına neden olan bir Birimi belirtir
- Önce: Bu alanda belirtilen Birim de başlatılıyorsa, mevcut Birimden sonra başlatılmalıdır
- Sonra: Bu alanda belirtilen Birim de başlatılıyorsa, mevcut Birimden önce başlatılmalıdır
- Çatışmalar: Burada belirtilen birim, mevcut üniteyle aynı anda çalışamaz
- Koşul... : Mevcut birimin çalışması için karşılanması gereken koşullar, aksi takdirde çalışmaz
- Öne sürmek... : Mevcut birimin çalışması için karşılanması gereken koşullar, aksi takdirde başlatma hatası bildirilecektir
[Kurulum] genellikle yapılandırma dosyasının açılma ve açılış sürecini tanımlayan son bloğudur. Ana alanları şunlardır.
- WantedBy: Değeri bir veya daha fazla Hedefdir ve mevcut Birim aktifse (etkinleştirildiğinde), simbini /etc/systemd/system dizininin altındaki bir alt dizinde Hedef adı + .wants ekiyle yerleştirilir
- RequiredBy: Değeri bir veya daha fazla Hedefdir ve mevcut Birim aktifken, simbini /etc/systemd/system dizininin altındaki bir alt dizine Hedef adı + .required ekiyle yerleştirir
- Takma ad: Mevcut Birimin başlatmak için kullanabileceği takma addır
- Ayrıca: Mevcut birim aktif olduğunda, diğer birimler de aynı anda aktive olur
[Servis] bloğu Hizmeti yapılandırmak için kullanılır ve yalnızca Hizmet tipi birimlerde bu blok bulunur. Ana alanları şunlardır.
- Tip: Sürecin başlangıçtaki davranışını tanımlar. Aşağıdaki değerlere sahiptir.
- Type=simple: Varsayılan değer, ana süreci başlatmak için ExecStart tarafından belirtilen komutu çalıştırın
- type=forking: Fork, ana süreçten bir alt süreç oluşturur ve bu süreç oluşturulduktan hemen sonra çıkar
- Type=oneshot: Tek seferlik bir süreç, Systemd mevcut hizmetin çıkmasını bekleyip sonra yürütmeye devam eder
- Type=dbus: Mevcut hizmet D-Bus üzerinden başlatılır
- type=notify: Mevcut hizmet başlatıldığında, Systemd bilgilendirilir ve yürütmeye devam edilir
- type=idle: Mevcut hizmet yalnızca diğer görevler yürütülürse çalışır
- ExecStart: Mevcut hizmeti başlatma komutu
- ExecStartPre: Mevcut hizmet başlatılmadan önce çalıştırılan komut
- ExecStartPost: Mevcut hizmet başlatıldıktan sonra çalıştırılan komut
- ExecReload: Mevcut hizmet yeniden başlatıldığında yürütülen komut
- ExecStop: Mevcut hizmet durdurulduğunda çalıştırılan komut
- ExecStopPost: Komut verildiğinde çalıştırılan komutu durdur
- RestartSec: Otomatik hizmetin mevcut hizmeti yeniden başlatması arasındaki saniye sayısı
- Yeniden başlatma: Systemd'nin mevcut hizmeti otomatik olarak yeniden başlatacağı koşulları tanımlar; her zaman, başarısızlık, başarısızlık, anormal, iptal etme, watchdog gibi olası değerlerle
- TimeoutSec: Systemd'nin mevcut hizmeti durdurmadan önce beklediği saniye sayısını tanımlar
- Ortam: Ortam değişkenini belirtin
Systemctl yönetim aracı
CentOS'ta program yönetimi temelde systemctl aracı tarafından yapılır.
Startup Hizmeti:
systemctl start name.service
Hizmeti sonlandırma:
systemctl stop name.service
Hizmeti yeniden başlatmak:
systemctl restart name.service
Durum Görüntüle:
systemctl status name.service
Koşullu yeniden başlatma:
Hizmet daha önce başlatıldıysa, yeniden başlatılır, hizmet başlatılmazsa çalıştırılmaz.
systemctl try-restart name.service
Yeniden yükleme veya yeniden başlatma:
Önce yeniden yükleyin, eğer yeniden yükleme başarısız olursa, yeniden başlatın
systemctl reload-or-restart name.service
Yeniden yükleme veya koşullu yeniden başlatma:
systemctl reload-or-try-restart name.service
Kullanıcının hizmeti durumu başlatmak için ayarlayıp ayarlamadığını ayarlar
systemctl unmask name.service
systemctl maske name.service yasaktır
Hizmetin mevcut aktivasyon durumunu görüntüleyin:
Hizmet başlatıldı komutunun durum dönüşü değeri 0'dır Başlatılmamış komutun durum iade değeri 0 değildir
systemctl is-active name.service
Aktif hale getirilen tüm servislere bakın:
-t Gösterilen ünite türünü belirtir.
--hepsi daha ayrıntılı bir bilgi listesi gösterir.
-eşdeğer --hepsi
systemctl liste-birimleri
systemctl list-units -t service
systemctl list-units -t service -a
Tüm hizmetleri görün:
systemctl liste-birimleri -a
Tüm hizmet durumlarını görüntüleyin:
systemctl list-unit-files
-a 、--all : Tüm hizmetlerin durumunu görüntüleyin
-t 、--tip: Görüntülenecek birimin türünü belirtir
yüklendi: Yapılandırma dosyası yüklendi, belleğe yüklendi
aktif (çalışan): Bir veya daha fazla kez sürekli işlenen çalışmalar
active(exited): Tek seferlik yapılandırma başarıyla tamamlandı
aktif (bekliyor): Koşuyor, bir olay bekliyor
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活
Hizmetin hangi işletim seviyelerinde etkinleştirildiği ve devre dışı bırakıldığı listelenmek için kullanılır
ls /etc/systemd/system/*.wants/sshd.service
systemctl list-unit-files --type target --all
Servisi başlamamaya ayarlamak için:
systemctl devre dışı bırak hizmet adı birimi
Hizmetin açılıp açılmadığını kontrol edin:
systemctl is-enabled name.service
Hizmet bağımlılıklarına bakın:
systemctl list-dependencies name.service systemctl list-depebdencies
Ağır yük hizmeti:
systemctl daemon-reload
Süreci öldür:
systemctl kill process adı
Kaynaklar:
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.
|