Systemd ile Açılışta Başlayan Servisleri Kontrol Etme

Systemd ile Açılışta Başlayan Servisleri Kontrol Etme

December 22, 2016·İbrahim Korucuoğlu
İbrahim Korucuoğlu

Bilgisayarınızı kullanırken ihtiyacınız olan bir çok programı indirir, yükler ve denersiniz. Bunların bir kısmı yüklü olarak dururken, bir kısmını da beğenmez ve kaldırırsınız. Yüklü olan programların bir kısmını da çok sık kullanmazsınız. Örneğin, bilgisayarınıza yüklediğiniz Virtualbox Sanallaştırma yazılımını her zaman kullanmıyor olabilirsiniz. Şunu bilmelisiniz ki, bu tür programlar bilgisayarın açılışında başlatılmak üzere bir takım servisleri çalıştırırlar. Sisteminizi açtığınızda kullanmayacağınız bu servisler, açılışta otomatik yüklendiklerinden başlangıç süresini arttırırlar. Sistemde arka planda çalıştıkları için kaynak israfına da yol açarlar. Bu yazıda sizlere, systemd , systemd-analyze  ve systemctl  kullanarak bilgisayarınızın açılışında başlamasını istemediğiniz servisleri nasıl iptal edebileceğinizi açıklayacağım.

Sisteminizde systemd Var mı?

Bu yazıda anlatılanlar, systemd  sistem yönetim altyapısını kullandığından, bilmiyorsanız öncelikle işletim sisteminizin systemd kullanıp kullanmadığını tespit etmelisiniz. Bunu, aşağıdaki komut ile yapabilirsiniz.

systemd --version
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

Yukarıdaki örneğe benzer bir çıktı aldıysanız, sisteminizde systemd var demektir. Bu çıktıdan; sürüm numarasının 229 olduğu görebiliriz.

Sisteminizin Boot Süresi Ne kadar?

Bilgisayarınız açılmaya başladığında arka planda öncelikle kernel, ardından kullanıcı düzeyi servisler yüklenir. Bu sürenin kısaca özetini aşağıdaki komutu kullanarak görebilirsiniz.

systemd-analyze

Startup finished in 4.891s (kernel) + 38.844s (userspace) = 43.735s

Yukarıdaki çıktıda görülüyor ki sistem topam 43  saniyede açılmış. Bu sürenin ~4.8 saniyesini kernel yükleme işlemi kullanırken, ~38.8 saniyesi kullanıcı düzeyi uygulamalar için harcanmış. Peki bu uygulamaların hepsini, gerçekten kullanıyor musunuz veya ihtiyacınız var mı? Bunlardan bazıları açılışı geciktirirken aynı zamanda arka planda sistem kaynağı kullanıyor olabilirler.

Açılış Raporunu Detaylı İnceleme

Bir önceki başlıkta verdiğimiz komut çıktısı, özet raporu verirken, şimdi kullanacağımız komut ise detaylı olarak servis düzeyinde zaman miktarını bize verecektir.

systemd-analyze blame
         16.351s mysql.service
          9.098s apache2.service
          8.162s NetworkManager-wait-online.service
          5.641s activdevices.service
          5.566s dev-sda1.device
          4.645s NetworkManager.service
          4.074s accounts-daemon.service
          3.413s qemu-kvm.service
          3.234s rsyslog.service
          3.131s arpalert.service
          3.065s speech-dispatcher.service
          2.677s rc-local.service
          2.524s gpu-manager.service
          2.511s console-kit-log-system-start.service
          2.440s ufw.service
          2.430s vboxdrv.service
          2.212s networking.service
          2.107s thermald.service
          1.802s grub-common.service
          1.616s apparmor.service
          1.571s systemd-udevd.service
          1.291s systemd-tmpfiles-setup-dev.service
          1.201s irqbalance.service
          1.068s keyboard-setup.service
          1.058s loadcpufreq.service
          1.025s avahi-daemon.service
           845ms ondemand.service

Çıktıyı incelediğimizde, en fazla sürenin 16.351s mysql.service tarafından kullanıldığını görmekteyiz. Bu servis veya listede bulunan diğer servislerden hangilerine sürekli ihtiyaç duymuyorsak, açılışta yüklenmesini iptal edebiliriz. Dikkat etmelisiniz ki, sistemden tamamen kaldırmıyoruz. Sadece başlangıçta yüklenmesini devre dışı bırakıyoruz.

Açılışta Yüklenen Bir Servisi Devre Dışı Bırakma

Farz edelim ki mysql.service bu servisin açılışta başlamasına ihtiyacımız yok. İstediğimiz zaman kendimiz başlatabiliriz veya ileride tekrar başlangıçta yüklenecekler listesine ekleyebiliriz. Bunun için systemctl  tarafından sağlanan enabled  - disabled  anahtarlarını kullanabiliriz.

sudo systemctl disable mysql.service

Synchronizing state of mysql.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install disable mysql
Bazı servisler, doğrudan sistemin kararlılığı ile ilgilidir. Tam olarak ne işe yaradığını araştırmadan, bir servisi iptal etmemenizi tavsiye ediyorum.

Devre Dışı Bırakılan Servisi Başlatma

Sisteminizi kullandığınız esnada, açılış esnasında yüklenmesini iptal ettiğiniz sistemi başlatmak isteyebilirsiniz. Bu durum 2 farklı şekilde ortay çıkabilir.

Bilgisayarınızda çalışırken servisi hemen başlatmak

Yukarıdaki örnekte gördüğümüz mysql.service  servisini hemen kullanmak için başlatmak isteyebilirsiniz. Bu durumda systemctl  tarafından sağlanan start  anahtarını kullanmanız yeterli.

sudo systemctl start mysql.service

Servisi tekrar açılış esnasında başlatmak

Önceden iptal ettiğiniz servise çok sık ihtiyaç duymaya başladınız. Üzerinde çalıştığınız proje farklılaştı ve açılışta başlamasını istiyorsunuz. O zaman, aşağıdaki komut örneğindeki yöntemle servisi tekrar başlangıçta yüklenecek şekilde ayarlayabilirsiniz.

sudo systemctl enable mysql.service

Synchronizing state of mysql.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable mysql

Son Notlar

İptal ettiğiniz servisin adını unutabilirsiniz. İptal ederken kullandığınız sistemin adını tekrar bulmak için, sisteminizde bulunan servislerin listesini ve durumunu aşağıdaki komut yardımıyla görebilirsiniz.

sudo systemctl list-unit-files --type=service

UNIT FILE                                  STATE   
accounts-daemon.service                    enabled 
acpid.service                              disabled
alsa-restore.service                       static  
alsa-state.service                         static  
alsa-utils.service                         masked  
anacron-resume.service                     enabled 
anacron.service                            enabled 
apt-daily.service                          static  
atd.service                                enabled 
auditd.service                             enabled 
autovt@.service                            enabled 
avahi-daemon.service                       disabled
binfmt-support.service                     enabled 
bluetooth.service                          disabled
bootlogd.service                           masked  
bootlogs.service                           masked  
bootmisc.service                           masked  
brltty-udev.service                        static

Systemd konusunda detaylı bilgi için ArchLinux Wiki sayfalarını size tavsiye edebilirim. 

Last updated on