💚Services | Linux Basics #5
Linux Services, sistemin kritik işlevlerini yerine getiren arka plan süreçleridir. systemd kullanılarak bu servisler kolayca yönetilebilir. Servislerin başlatılması, durdurulması, yeniden başlatılması ve sistem başlatıldığında otomatik olarak çalışacak şekilde ayarlanması gibi işlemler yapılabilir.
# HTTPD hizmetini başlatmak için kullanılır. Bu iki komut aynı işi yapar,
# ancak systemctl daha modern ve tercih edilen yöntemdir.
service httpd start
systemctl start httpd
# HTTPD hizmetini durdurmak için kullanılır.
systemctl stop httpd
# HTTPD hizmetinin durumunu kontrol etmek için kullanılır.
# Hizmetin çalışıp çalışmadığını ve varsa hata mesajlarını gösterir.
systemctl status httpd
# HTTPD hizmetini sistem başlatıldığında otomatik olarak çalışacak şekilde ayarlamak için kullanılır.
systemctl enable httpd
# HTTPD hizmetini sistem başlatıldığında otomatik olarak çalışmayacak şekilde ayarlamak için kullanılır.
systemctl disable httpdLinux sistemlerinde servisler, eskiden init scripts adı verilen scriptler ile yönetilirdi. Bu scriptler, her servisi başlatmak, durdurmak ve durumunu kontrol etmek için kullanılırdı. Init scripts basit ve shell script olarak yazılırdı, bu da yönetimi kolaylaştırırdı. Ancak, bu yöntem servisleri sıralı olarak başlattığı için sistemin açılış süresi uzar ve servisler arası bağımlılıkları ve hataları yönetmek zor olurdu.
Öte yandan, systemd modern Linux dağıtımları için tasarlanmış bir servis yöneticisidir. Servisleri bağımlılıklarına göre paralel olarak başlatabilir, bu da sistemin daha hızlı açılmasını sağlar. Ayrıca, systemd bağımlılıkları daha iyi yönetir ve Servislerin daha kararlı çalışmasını sağlar. Yapılandırma dosyaları INI formatındadır. Systemd sadece hizmet yönetimiyle kalmaz, aynı zamanda log yönetimi, cihaz yönetimi gibi birçok ek işlev sunar.
Sonuç olarak, init scripts basit ve geleneksel bir yöntemken, systemd modern sistemler için daha uygun, hızlı çözümdür. Bu yüzden çoğu modern Linux dağıtımı systemd'yi kullanmaktadır.
Python Flask uygulamamızı systemd servisi haline getirelim;
Örneğin,
app.pyadında basit bir Flask uygulamanız olduğunu varsayalım.
Flask'ı sisteme kurulu hale getirelim.
/etc/systemd/system/dizininde yeni bir servis dosyası oluşturun. Örneğin,flaskapp.serviceadında bir dosya oluşturacağız.
Aşağıdaki örnek içeriği servis dosyasına yapıştırın. Bu içerik, Flask uygulamanızı doğrudan Python kullanarak systemd hizmeti olarak çalıştıracaktır.
User=your_user: Buraya servisi çalıştıracak kullanıcının adını yazın.WorkingDirectory=/path/to/your/app: Buraya Flask uygulamanızın bulunduğu dizinin yolunu yazın.ExecStart=/usr/bin/python3 /path/to/your/app/app.py: Bu komut, Flask uygulamanızı Python kullanarak çalıştırır.
Servisi etkinleştirin ve başlatın.
Bu adımları izleyerek, Python Flask uygulamanızı systemd servisi olarak çalıştırabilirsiniz. Bu yöntemle Flask uygulamanız doğrudan sistem genelinde kurulu Python ile başlatılır ve systemd tarafından yönetilir.
Sample Systemd File,
Last updated
Was this helpful?