Hizmetler ve Arka Plan Programları

Bu bölüm, bir sistem başlatıldığında çalıştırılacak hizmetlerin yapılandırmasını açıklar ve hizmetlerin systemctl programını kullanarak komut satırında nasıl başlatılacağı, durdurulacağı ve yeniden başlatılacağı hakkında bilgi sağlar.

Sistemi güvende tutun

Yeni hizmetlere erişime izin verdiğinizde, hem SELinux hem de güvenlik duvarının yapılandırılması gerektiğini unutmayın. Yeni bir hizmeti yapılandırırken yapılan en yaygın hatalardan biri, erişime izin vermek için gerekli güvenlik duvarı yapılandırmasını ve SELinux politikalarını uygulamayı ihmal etmektir.

Hizmetleri Yapılandırma

Önyükleme sırasında hangi hizmetlerin başlatılacağını yapılandırmanıza izin vermek için Fedora, systemctl komut satırı aracıyla birlikte gelir.

ntsysv ve chkconfig programlarını kullanmayın

/etc/rc.d/init.d/ dizininde kurulu başlangıç betikleri olan hizmetleri yönetmek için ntsysv ve chkconfig programlarını kullanmak hala mümkün olsa da, bunların yerine systemctl programını kullanmanız tavsiye edilir.

irqbalance hizmetini etkinleştirme

POWER mimarisinde en iyi performansı sağlamak için irqbalance hizmetinin etkinleştirilmesi tavsiye edilir. Çoğu durumda, bu hizmet Fedora Rawhide kurulumu sırasında çalışacak şekilde kurulur ve yapılandırılır. irqbalance hizmetinin çalıştığını doğrulamak için, bir kabuk isteminde şunu yazın:

systemctl status irqbalance.service

Hizmeti Etkinleştirme

Bir hizmeti önyükleme sırasında otomatik olarak başlatılacak şekilde yapılandırmak için aşağıdaki şekilde systemctl komutunu kullanın:

systemctl enable hizmet_adı.service

Hizmet, sistemi bir sonraki önyüklemenizde başlatılacaktır. Hizmetin hemen nasıl başlatılacağı hakkında bilgi için Hizmeti Çalıştırma kısmına bakın.

Example 1. httpd hizmetini etkinleştirme

Sisteminizde Apache HTTP Sunucusunu çalıştırmak istediğinizi düşünün. httpd paketinin kurulu olması koşuluyla, aşağıdaki komutu root olarak bir kabuk isteminde yazarak httpd hizmetini etkinleştirebilirsiniz:

~]# systemctl enable httpd.service

Hizmeti Devre Dışı Bırakma

Önyükleme sırasında bir hizmeti başlatmayı devre dışı bırakmak için aşağıdaki şekilde systemctl komutunu kullanın:

systemctl disable hizmet_adı.service

Sistemi bir sonraki önyüklemenizde hizmet başlatılmayacaktır. Hizmetin hemen nasıl durdurulacağı hakkında bilgi için Hizmeti Durdurma kısmına bakın.

Example 2. telnet hizmetini devre dışı bırakma

Sistemin güvenliğini sağlamak için kullanıcılara Telnet gibi güvenli olmayan bağlantı protokollerini devre dışı bırakmaları tavsiye edilir. Aşağıdaki komutu root olarak çalıştırarak telnet hizmetinin devre dışı bırakıldığından emin olabilirsiniz:

~]# systemctl disable telnet.service

Hizmetleri Çalıştırma

systemctl programı ayrıca belirli bir hizmetin durumunu belirlemenize ve bir hizmeti başlatmanıza, durdurmanıza veya yeniden başlatmanıza olanak tanır.

service programını kullanmayın

/etc/rc.d/init.d/ dizininde kurulu başlangıç betikleri olan hizmetleri yönetmek için service programını kullanmak hala mümkün olsa da, bunun yerine systemctl programını kullanmanız tavsiye edilir.

Hizmetin Durumunu Denetleme

Belirli bir hizmetin durumunu belirlemek için aşağıdaki şekilde systemctl komutunu kullanın:

systemctl status hizmet_adı.service

Bu komut, hizmetin durumu hakkında ayrıntılı bilgi sağlar. Ancak, yalnızca bir hizmetin çalıştığını doğrulamanız gerekiyorsa, bunun yerine systemctl komutunu aşağıdaki şekilde kullanabilirsiniz:

systemctl is-active hizmet_adı.service
Example 3. httpd hizmetinin durumunu denetleme

httpd hizmetini etkinleştirme kısmında, önyükleme sırasında httpd hizmetinin başlatılmasının nasıl etkinleştirileceği gösterildi. Sistemin yeniden başlatıldığını ve hizmetin gerçekten çalıştığını doğrulamanız gerektiğini düşünün. Bunu, bir kabuk isteminde şunu yazarak yapabilirsiniz:

~]$ systemctl is-active httpd.service
active

Ayrıca aşağıdaki komutu çalıştırarak hizmetle ilgili ayrıntılı bilgileri görüntüleyebilirsiniz:

~]$ systemctl status httpd.service
httpd.service - LSB: start and stop Apache HTTP Server
          Loaded: loaded (/etc/rc.d/init.d/httpd)
          Active: active (running) since Mon, 23 May 2011 21:38:57 +0200; 27s ago
         Process: 2997 ExecStart=/etc/rc.d/init.d/httpd start (code=exited, status=0/SUCCESS)
        Main PID: 3002 (httpd)
          CGroup: name=systemd:/system/httpd.service
                  ├ 3002 /usr/sbin/httpd
                  ├ 3004 /usr/sbin/httpd
                  ├ 3005 /usr/sbin/httpd
                  ├ 3006 /usr/sbin/httpd
                  ├ 3007 /usr/sbin/httpd
                  ├ 3008 /usr/sbin/httpd
                  ├ 3009 /usr/sbin/httpd
                  ├ 3010 /usr/sbin/httpd
                  └ 3011 /usr/sbin/httpd

Tüm etkin sistem hizmetlerinin bir listesini görüntülemek için şu komutu kullanın:

systemctl list-units --type=service

Bu komut, her satırda aşağıdaki sütunların bulunduğu tablo şeklinde bir çıktı sağlar:

  • UNIT — Bir systemd birim adı. Bu durumda, bir hizmet adı.

  • LOADsystemd biriminin düzgün yüklenip yüklenmediği bilgisi.

  • ACTIVE — Birimin genel etkinleştirilme durumu.

  • SUB — Birimin ayrıntılı etkinleştirilme durumu.

  • JOB — Birim için bekleyen bir iş.

  • DESCRIPTION — Birimin kısa bir açıklaması.

Example 4. Tüm etkin hizmetleri listeleme

Aşağıdaki komutu kullanarak tüm etkin hizmetleri listeleyebilirsiniz:

~]$ systemctl list-units --type=service
UNIT                      LOAD   ACTIVE SUB     JOB DESCRIPTION
abrt-ccpp.service         loaded active exited      LSB: Installs coredump handler which saves segfault data
abrt-oops.service         loaded active running     LSB: Watches system log for oops messages, creates ABRT dump directories for each oops
abrtd.service             loaded active running     ABRT Automated Bug Reporting Tool
accounts-daemon.service   loaded active running     Accounts Service
atd.service               loaded active running     Job spooling tools
[çıktı yarıda kesildi]

Yukarıdaki örnekte abrtd hizmeti yüklenmiş, etkin, çalışıyor ve bekleyen herhangi bir işi yok.

Hizmeti Çalıştırma

Bir hizmeti çalıştırmak için aşağıdaki şekilde systemctl komutunu kullanın:

systemctl start hizmet_adı.service

Bu, hizmeti geçerli oturumda başlatacaktır. Hizmeti önyükleme sırasında başlatılacak şekilde yapılandırmak için Hizmeti Etkinleştirme kısmına bakın.

Example 5. httpd hizmetini çalıştırma

httpd hizmetini etkinleştirme kısmında, önyükleme sırasında httpd hizmetinin nasıl çalıştırılacağı gösterildi. Aşağıdaki komutu root olarak bir kabuk isteminde yazarak hizmeti hemen başlatabilirsiniz:

~]# systemctl start httpd.service

Hizmeti Durdurma

Bir hizmeti durdurmak için aşağıdaki şekilde systemctl komutunu kullanın:

systemctl stop hizmet_adı.service

Bu, hizmeti geçerli oturumda durduracaktır. Önyükleme sırasında hizmeti başlatmayı devre dışı bırakmak için Hizmeti Devre Dışı Bırakma kısmına bakın.

Example 6. telnet hizmetini durdurma

telnet hizmetini devre dışı bırakma kısmında, önyükleme sırasında telnet hizmetinin başlatılmasının nasıl devre dışı bırakılacağı gösterildi. Aşağıdaki komutu root olarak çalıştırarak hizmeti hemen durdurabilirsiniz:

~]# systemctl stop telnet.service

Hizmeti Yeniden Başlatma

Bir hizmeti yeniden başlatmak için aşağıdaki şekilde systemctl komutunu kullanın:

systemctl restart hizmet_adı.service
Example 7. sshd hizmetini yeniden başlatma

/etc/ssh/sshd_config yapılandırma dosyasındaki herhangi bir değişikliğin etkili olması için, sshd hizmetini yeniden başlatmanız gerekir. Bunu, aşağıdaki komutu root olarak bir kabuk isteminde yazarak yapabilirsiniz:

~]# systemctl restart sshd.service

Ek Kaynaklar

Kurulu Belgeler

  • systemctl(1) — systemctl programı için kılavuz sayfası.