Linux’ta servisler, arka planda çalışan programlardır. Servisler isteğe bağlı olarak başlangıçta yada sonrasında başlatılabilir. Linux’da bir çok servisle çalışıyoruz, örnek olarak web server, ssh veya cron gibi farklı servisler olabilir. Çalışan servisleri nasıl listeleyeceğinizi veya servislerin durumunu nasıl kontrol edeceğinizi bilmek, sistem sorunlarının hatalarını ayıklarken önemlidir. Son Linux dağıtımlarının çoğu, varsayılan başlatma sistemi ve hizmet yöneticisi olarak systemd kullanıyor. Systemd, Linux sistemlerini yönetmek için bir araçlar paketidir. Makineyi başlatmak, hizmetleri yönetmek, dosya sistemlerini otomatikleştirmek, olayları günlüğe kaydetmek, ana bilgisayar adını ayarlamak ve diğer sistem görevlerini yapmak için kullanılır. Bu yazıda, Linux’ta servisleri listeleyip ve servis detaylarına bakacağız.
Servisleri Listeleme
Belleğe yüklü, çalışır durumda olan/olmayan bütün servisleri listelemek için kullanacağımız komut:
sudo systemctl list-units --type service
Örnek çıktı:
UNIT LOAD ACTIVE SUB DESCRIPTION
accounts-daemon.service loaded active running Accounts Service
apparmor.service loaded active exited Load AppArmor profiles
apport.service loaded active exited LSB: automatic crash report generation
atd.service loaded active running Deferred execution scheduler
blk-availability.service loaded active exited Availability of block devices
cloud-config.service loaded active exited Apply the settings specified in cloud-config
........
Her çıktı satırı, aşağıdaki sütunları içerir:
UNIT – Servisin ismi
Load – Servis dosyasının belleğe yüklenip yüklenmediği hakkında bilgi verir.
ACTIVE – active, reloading, inactive, failed, activating, deactivating Statülerini gösterir.
SUB – Servisin durumunu gösterir. Değerler: states, dead, exited, failed, inactive, runningDESCRIPTION
– Servis’in kısa açıklaması.
Bellekte yüklü olan/olmayan ve çalışır durumda olan/olmayan bütün servisleri listelemek için kullanacağımız kod.
sudo systemctl list-units --type service --all
Servis Durumunu Görüntüleme
Bir servisin durumunu kontrol etmek için systemctl status
komutunu kullanın:
sudo systemctl status servis_ismi.service
Örnek olarak NGINX servisinin durumunu görüntüleyelim:
sudo systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/nginx.service.d
└─limits.conf
Active: active (running) since Tue 2022-02-08 00:41:13 +03; 2 days ago
Main PID: 21684 (nginx)
Tasks: 68 (limit: 2367)
Memory: 72.6M
CGroup: /system.slice/nginx.service
├─21684 nginx: master process /usr/sbin/nginx
├─21685 nginx: worker process
├─21686 nginx: worker process
└─21687 nginx: cache manager process
Feb 08 00:41:13 linuxpedi systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 08 00:41:13 linuxpedi nginx[21682]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Feb 08 00:41:13 linuxpedi nginx[21682]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Feb 08 00:41:13 linuxpedi systemd[1]: Started A high performance web server and a reverse proxy server.
Her çıktı satırı, aşağıdaki başlıkları içerir:
Loaded – Servisin yüklenip yüklenmediği ve servis dosyasının tam yolu. Ayrıca, servisin başlangıçta çalıştırılması için etkinleştirilip etkinleştirilmediğini de gösterir.
Active – Servisin yüklenmiş ve çalışıyor olup olmadığı. Terminaliniz renkleri destekliyorsa ve hizmet etkin ve çalışıyorsa, nokta (●) ve “active (running)” kısmı yeşil olarak yazdırılacaktır. Satır ayrıca servisin ne kadar süredir çalıştığını da gösterir.
Main PID – Servisin işlem “PID” numarasını verir.
Memory – Kullanılan RAM bellek miktarını gösterir.
CGroup – Servisin aktif olarak kullandığı “PID”ler.
Sadece tek bir servisin aktif olup olmadığını görmek için kullanılacak komut:
systemctl is-active servis_ismi.service
systemctl is-active nginx.service