# ----------------------------------------------------------------------------- # SYSTEMD NOTLARI # ----------------------------------------------------------------------------- Debian Jessie ile test edilmiştir. # ----------------------------------------------------------------------------- # SERVİSLERİN YÖNETİLMESİ # ----------------------------------------------------------------------------- # Status systemctl status ssh.service systemctl is-active ssh.service # Başlatma systemctl start ssh.service # Durdurma systemctl stop ssh.service # Yeniden başlatma systemctl restart ssh.service # Açılıştan kaldırma systemctl disable ssh.service # Açılışa ekleme systemctl enable ssh.service # Açılışta başlayacak mı systemctl is-enabled ssh.service # mask Başlatılmasını yasaklama. Manuel olarak da başlatılamaz systemctl mask ssh.service # unmask systemctl unmask ssh.service # daemon-reload systemd servisini yeniden yükleme. Yeni unit tanımlandığında gerekiyor. systemctl daemon-reload # ----------------------------------------------------------------------------- # UNIT # ----------------------------------------------------------------------------- Unit dosyasının '/lib/systemd/system' klasörüne konulması gerekiyor. Sembolik link olursa çalışmıyor. Son güncellemelerle bu durum değişmiş olabilir. Dağıtımla gelen unit dosyaları "/lib/systemd/system" altında. Overwrite edilenler "/etc/systemd/system" altında. # /lib/systemd/system/ornek.service [Unit] Description=Servis aciklama Requires=network.target After=network.target [Service] Type=forking PIDFile=/tmp/myservice.pid User=emrah Group=emrah ExecStart=/home/emrah/services/myservice.py start ExecStop=/home/emrah/services/myservice.py stop [Install] WantedBy=multi-user.target # Unit satırları hakkında Requires= Bu servisin çalışabilmesi için ihtiyaç duyulan servisler. After= Hangi servislerden sonra başlatılması gerektiği. After bölümünde, yer alan servise ihtiyaç duyulduğu anlamına gelmiyor. Sadece o servisten sonra başlaması gerektiği anlamına geliyor. Type= Servis tipi. Double-fork magic ile başlatılan servisler için forking seçilecek. Restart=on-failure Servis crash olursa yeniden başlatılsın. EnvironmentFile=-/etc/default/ornek Servis için environment değişkenlerinin yer aldığı dosya. PrivateTmp=yes Servise özel /tmp klasörü olsun. InaccessibleDirectories=/home Servisin erişemeyeceği klasörler ReadOnlyDirectories=/var Servis için read-only olan klasörler. MemoryLimit=1G Servis için memory limiti. CPUShares=1500 Servis için CPU kullanım oranı. Satırlar, farklı parametrelerle birden fazla tekrarlanabilir. # Unit config cat systemctl cat ornek.service systemctl cat atd.service # ----------------------------------------------------------------------------- # TIMER # ----------------------------------------------------------------------------- Cron benzeri systemd servisi. # /lib/systemd/system/ornek. [Unit] Description=ornek adli servisi her saat calistir [Timer] OnBootSec=10min OnUnitActiveSec=1h Unit=ornek.service [Install] WantedBy=multi-user.target # Unit satırları hakkında OnBootSec=10min Açılıştan 10 dakika sonra ilk çalışma OnUnitActiveSec=1h İlk çalışmadan sonra 1 saat ara ile yeniden çalış # Timer listesi systemctl list-timers # ----------------------------------------------------------------------------- # JOURNALCTL # ----------------------------------------------------------------------------- # Boot logu journalctl --boot # Sadece bir servise ait loglar journalctl --unit ssh.service # ----------------------------------------------------------------------------- # ANALİZ # ----------------------------------------------------------------------------- Sistemin açılma performansını analiz eder. # Sistemin açılma süresi systemd-analyze time # Hangi servisin açılması ne kadar sürüyor systemd-analyze blame # Kritik servislerin açılışı (ağaş şeklinde) systemd-analyze critical-chain # SVG grafik systemd-analyze plot >systemd.svg iceweasel systemd.svg # ----------------------------------------------------------------------------- # KLASÖRLER # ----------------------------------------------------------------------------- /etc/systemd /lib/systemd