Daemon
Arka Plan Servisi
- Okunuşu
- dimın
Kısaca
Daemon, kullanıcı arayüzü olmadan arka planda çalışan, genellikle açılışta başlatılan ve günlükleme, zamanlama veya SSH gibi bir hizmet sunan programdır.
Daemon nedir?
Daemon, herhangi bir terminale ya da kullanıcı oturumuna bağlı olmayan, uzun süre çalışan bir arka plan process'idir. Genellikle sistem açılırken başlar ve sessizce iş bekler: gelen ağ bağlantıları, zamanlanmış saatler, dosya değişiklikleri ya da diğer programlardan gelen istekler. Unix benzeri sistemlerde daemon adları geleneksel olarak sshd, crond ve systemd gibi d ile biter.
Geleneksel olarak bir program kendini fork ederek, terminalinden ayrılarak, çalışma dizinini / olarak değiştirerek ve girdi ile çıktısını ekrandan başka yere yönlendirerek daemon'a dönüştürürdü. Bugün çoğu Linux dağıtımında systemd ya da macOS'ta launchd gibi bir servis yöneticisi daemon'ları açılışta başlatır, çökerlerse yeniden başlatır ve günlüklerini toplar; böylece program basitçe ön planda çalışabilir. Daemon'lar genellikle Unix signal'larıyla denetlenir; örneğin yapılandırmayı yeniden yüklemek için SIGHUP. Windows'ta aynı fikre servis (service) denir.
Daemon, bir binanın gece güvenlik görevlisi gibidir: arka planda her zaman görevde, nadiren görülür ve biri bir şeye ihtiyaç duyduğu anda hazırdır. Web sunucuları, veritabanı sunucuları, SSH sunucusu, yazdırma kuyruk yöneticileri, cron zamanlayıcısı ve container çalışma zamanları hep daemon olarak çalışır.
Daemon, shell'de & ile başlattığınız bir işten farklıdır. Arka plandaki bir shell işi hâlâ terminal oturumunuza bağlıdır ve oturumu kapattığınızda durdurulabilir; daemon ise ayrılmıştır ve sistem tarafından yönetilir. Ayrıca bir uygulamadaki, e-posta göndermek gibi bir iş birimi olan arka plan işinden (background job) de farklıdır; bu işleri çalıştıran worker process'in kendisi çoğu zaman bir daemon'dur. Java ya da Python'daki daemon thread ise ilgisiz başka bir fikirdir: ana thread çıktığında programı canlı tutmayan bir thread.
Önemli noktalar
- Daemon, terminali veya kullanıcı arayüzü olmayan bir arka plan process'idir.
- Daemon'lar genellikle açılışta başlar ve istekleri veya olayları bekler.
- systemd gibi servis yöneticileri daemon'ları başlatır, durdurur ve yeniden başlatır.
- Birçok daemon adı
sshdvecrondgibi d ile biter. - Windows'ta karşılığına servis (service) denir.
Örnek
# List running services (daemons) managed by systemd
systemctl list-units --type=service --state=running
# Check, restart, and enable the SSH daemon at boot
systemctl status sshd
sudo systemctl restart sshd
sudo systemctl enable sshd
# Read the daemon's recent log output
journalctl -u sshd -n 20Sık sorulan sorular
Neden daemon deniyor?
Ad, 1960'larda MIT'deki programcılar tarafından, fizikte arka planda yorulmadan çalışan hayali bir varlık olan Maxwell'in şeytanından (demon) esinlenerek verildi. Kötü ruhlarla hiçbir ilgisi yoktur.
Daemon ile servis arasındaki fark nedir?
Neredeyse aynı anlama gelirler. Daemon, arka plan process'i için geleneksel Unix terimidir; servis ise Windows terimidir ve Linux'ta systemd tarafından yönetilen daemon'lar için de kullanılır.
systemd nedir?
systemd, çoğu Linux dağıtımının kullandığı init sistemi ve servis yöneticisidir. Kernel tarafından başlatılan ilk process'tir ve sistemin daemon'larını başlatır, denetler ve günlüğe kaydeder.
İlgili sayfalar
- Processİşletim Sistemleri, s. 23Process, bir programın çalışan örneğidir; işletim sistemi tarafından yönetilen kendi bellek alanına, kaynaklarına ve en az bir yürütme iş parçacığına sahiptir.
- Shellİşletim Sistemleri, s. 28Shell, kullanıcının yazdığı ya da bir betikte yazılı komutları okuyup işletim sisteminden çalıştırmasını isteyen, genellikle metin arayüzlü bir programdır.
- Unix Signalİşletim Sistemleri, s. 36Unix signal, kernel'ın bir process'e durdurma isteği, hata ya da dolan bir zamanlayıcı gibi bir olayı bildirmek için ilettiği kısa ve asenkron bir bildirimdir.
- Cron JobBackend ve API'ler, s. 8Cron job, beş alanlı bir cron ifadesiyle tanımlanan ve her gece 02.00 gibi tekrarlayan bir zamanlamayla otomatik çalışan bir komut veya betiktir.
- Arka Plan İşiBackend ve API'ler, s. 5Arka plan işi, bir sunucunun normal istek-yanıt döngüsünün dışında çalıştırdığı görevdir; e-posta gönderme gibi yavaş işler kullanıcıları bekletmez.
- Web SunucusuBackend ve API'ler, s. 46Web sunucusu, tarayıcılardan ve diğer istemcilerden gelen HTTP isteklerini alıp sayfa, dosya ya da veriyle yanıt veren yazılım veya onu çalıştıran makinedir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin