logo

Linux Arka Planı

Bir daemon nedir?

Arka plan programı, kullanıcının doğrudan erişimi yerine, arka planda dikkat çekmeden çalışan, UNIX benzeri işletim sistemi üzerinde çalışan bir tür programdır. Belirli bir durum veya olayın ortaya çıkmasıyla tetiklenmeyi bekler.

Tipik olarak, UNIX benzeri sistemler, öncelikle ağdaki diğer sistemler aracılığıyla hizmet taleplerini karşılamak, donanım etkinliklerine yönelik ve aynı zamanda diğer programlara yanıt vermek için çok sayıda arka plan programı yürütür.

Daemon'ları etkinliğe dahil edebilecek koşullar veya eylemlere örnek olarak belirli bir tarih veya saat, tanımlanmış bir zaman aralığının geçişi, belirli bir iletişim hattından oluşturulan bir web isteğinin veya e-postanın alınması ve belirli bir dizine inen bir dosya verilebilir.

kabin algoritması

Bir koşulun veya eylemin failinin, arka plan programının dinlediğinin bilinmesi zorunlu değildir.

Bununla birlikte, programlar sıklıkla bir eylemi sırf örtülü olarak bir arka plan programı uyandıracağı bilindiği için uygular.

Bir arka plan programına aynı zamanda arka plan süreçleri de denir. Arka planda çalışan bir UNIX veya Linux programıdır. Neredeyse her daemon 'd' harfiyle biten isimler içerir. Örneğin, sshd, SSH uzaktan erişiminin bağlantılarını veya Apache sunucusunu yöneten httpd arka plan programını yönetir. Çoğu zaman Linux, daemonları başlangıç ​​zamanında başlatır.

Çeşitli kabuk komut dosyaları /etc/init.d dizinine kaydedilir. Bu komut dosyaları arka plan programlarını başlatmak ve durdurmak için kullanılır.

Linux Süreçleri

Genellikle, arka plan programları süreçler olarak başlatılır. Bu işlemler bir programın çalışan veya yürütülen örnekleridir. Bir süreç, işletim sisteminin çekirdeği olan çekirdek tarafından yönetilir ve tüm özel süreç kimlik numaralarını atar.

Linux'ta başlıca üç yaygın süreç türü vardır:

  • Grup
  • İnteraktif
  • Şeytan

Toplu işlem, bir işlem kuyruğu aracılığıyla gönderilir ve komut satırıyla ilişkili değildir. Bu işlemler, sistemin kullanımının düşük olması durumunda tekrarlanan işlemleri gerçekleştirmek için çok uygundur.

Etkileşimli süreç kullanıcı tarafından komut satırında etkileşimli olarak yürütülür.

bharti jha

Arka plan programı, ana süreci bir PID içeren süreçlere benzer bir sistem tarafından tanımlanır.

Her zaman, başlangıç ​​sürecini tanımlar. Başlatma işlemi, bir Linux sistemi başlatıldığında başlatılan ilk işlemdir ve sistem kapatılıncaya kadar sistem üzerinde kalır.

İnit, alt sürecin durumunu beklemeden ana süreci sona eren veya ölen her türlü süreci benimseyebilir.

Dolayısıyla, arka plan programını başlatmanın temel tekniği, iki veya bir kez bölmek veya çatallamak ve ayrıca alt süreç genel işlevini uygulamaya başlarken ana süreçlerin sonlandırılmasını sağlamaktır.

Daemonların Tarihi

Birkaç daemon, Sistem V'in başlangıç ​​komut dosyaları tarafından yayınlanır. Bunlar, sistem başlatılırken otomatik olarak çalıştırılabilen komut dosyaları veya kısa programlardır. Ya aralıklarla çoğaltılabilirler ya da oturum süresi boyunca hayatta kalabilirler.

Artık birçok arka plan programı, sürekli olarak yürütmek yerine yalnızca ihtiyaç duyulduğunda ve tek bir arka plan programı (xinetd) tarafından başlatılıyor. Xinetd, TCP/IP süper sunucusu olarak bilinir.

Başlangıç ​​zamanında başlatılır ve ayrıca yapılandırma dosyasında listelenen işlemlere atanan çeşitli bağlantı noktalarını (örneğin, /etc/xinetd.conf veya /etc/inetd.conf) dinler.

Uygulama programları ve işletim sistemi tarafından başlatılmak üzere birkaç daemon manuel olarak da başlatılabilir. Tüm arka plan programlarının, Linux da dahil olmak üzere çeşitli UNIX benzeri işletim sistemlerinde yeniden başlatılıp sonlandırılabilen ayrı bir komut dosyası vardır.

Bu scriptlerin yönetimi çalışma seviyelerine göre uygulanır. Çalışma seviyesi, bir sistemin yalnızca seçilmiş bazı işlemlerin kullanılabilir olmasına izin veren bir çalışma veya konfigürasyon durumu olarak tanımlanabilir. Farklı bir çalışma seviyesine başlamak, sistem hatalarının düzeltilmesi de dahil olmak üzere belirli sorunların veya sorunların çözülmesini destekleyebilir.

Daemon'ların Anahtar Noktaları

Daemon'ların bazı önemli kilit noktaları aşağıda açıklanmıştır:

  • Daemon sözcüğü Yunanca metodolojik daemon sözcüğünden alınmıştır. Bunlar, ölümlülerle tanrılar arasında yer alan ve benzersiz bir güce veya bilgiye sahip olan doğaüstü varlıklardı.
  • 1963 yılında, daemon terimi ilk olarak IBM 7094'ün yardımıyla öncü proje MAC'de bir sistem bağlamı içinde uygulandı.
  • Farklı hızlardaki molekülleri destekleyen ve arka planda yorulmadan çalışan soyut bir ajan olan Maxwell'in termodinamik ve fizik arka plan programından ilham aldı.
  • Bundan sonra bu terim, sistem işlerini yorulmadan çalıştıran arka plandaki süreçleri tanımlamak için kullanıldı.
  • İlk daemon bilgisayarı, teyp yedeklemelerini otomatik olarak oluşturan bir programdı.
  • Bu terim bilgisayar kullanımı için kullanıldı. Disk ve Yürütme Monitörü'nün kısa formuydu.
  • Microsoft Windows işletim sisteminde daemonların işlevlerine hizmet eden çeşitli programlar adı verilir. Ancak bazen bu sistemlerle birlikte daemon kelimesi de kullanılıyor.

Daemon'ların Uygulanması

Unix benzeri Sistemler

Unix benzeri sistemin süreci, eğer ana süreci ölürse ve bu arka plan programı ana süreç olarak başlangıç ​​sürecine (1 numaralı süreç) atanırsa ve kesinlikle teknik açıdan hiçbir kontrol terminali içermiyorsa bir arka plan programıdır.

Ancak bir arka plan programı, init sürecinin çocuğu olsun ya da olmasın, herhangi bir arka plan süreci olabilir.

Bir prosedür için temel teknik, prosedür komut satırı veya Sistem Başlatıcı betiği veya başlatma betiği gibi başlangıç ​​betikleri aracılığıyla başlatıldığında UNIX benzeri sistemde bir arka plan programı haline gelir ve şunları içerir:

python'da s nedir
  • İsteğe bağlı olarak gereksiz değişkenlerin ortam üzerinden silinmesi.
  • Çıkıp çatallayarak arka plan görevi olarak çalıştırma. Arka plan programının ebeveyninin (başlangıç ​​veya kabuk işlemi) çıkış bildirimlerini almasına ve normal yürütmeye devam etmesine olanak tanır.
  • Genellikle bireysel bir işlemle gerçekleştirilen, çağırma bölümünden ayırma,etsid():
    • Tty kontrolü yoluyla ayrışıyorum.
    • Daha yeni bir oturum oluşturmak ve o oturumun oturum lideri olmak.
    • Süreç grubunun lideri olmak.
  • Eğer arka plan programı yeni bir tty kontrolünü devralmayacağından emin olmak isterse, çıkıp yeniden çatallanabilir. Bu, yeni oturumun artık herhangi bir oturum lideri olmadığı ve herhangi bir tty kontrolünü devralamayacağı anlamına gelir.
  • Geçerli çalışma dizinini kök dizin olarak ayarlamak, böylece işlemin, takılı bir dosya sistemi üzerinde olabilecek herhangi bir dizini kullanmamasını sağlar.
  • Create(), open() ve diğer işletim sistemi çağrılarına izin vermek ve izin maskelerini kolaylaştırmak ve tüm arayan umask'a güvenmemek için umask'ı 0 olarak değiştirmek.
  • Standart akışlar (stderr, stdout, stdin) için dosya tanımlayıcıları 0, 1 ve 2'yi bir günlük dosyasına veya /dev/null'a yeniden yönlendirmek ve ana süreç aracılığıyla edinilen diğer tüm tanımlayıcı dosyaları kapatmak.

Süreç, systemd, launchd veya inetd gibi herhangi bir süper sunucu arka plan programı tarafından başlatıldığında, süper sunucu, systemd altında yürütmeye dönüştürülmeyen ve çok iş parçacıklı ve Type=forking datagram sunucuları olarak tanımlanan eski tarz arka plan programları hariç, bu işlem için bu işlevleri uygulayacaktır. inetd üzerine.

nesneyi dizeye dönüştürme

MSDOS

Daemon benzeri program, Microsoft DOS platformunda sonlandırma ve yerleşik kalma (kısaca TSR) yazılımı olarak yürütüldü.

Windows NT

Windows hizmetleri olarak bilinen programlar, bu arka plan programlarının işlevlerini Microsoft Windows NT sistemlerinde uygular. İşlemler halinde yürütülürler ve genellikle fare, klavye ve monitörle etkileşime girmezler. Önyükleme sırasında işletim sisteminin yardımıyla başlatılabilirler.

Windows hizmetleri, Denetim Masası (özel bir yapılandırma/kontrol programı), PowerShell komut dosyası sistemi veya hizmet kontrol yöneticisinin hizmet denetleyici öğesi olan net stop ve net start komutları tarafından manuel olarak durdurulur, başlatılır ve yapılandırılır.

Bununla birlikte, herhangi bir Windows uygulaması, bir hizmetin yanı sıra bir arka plan programının sorumluluklarını da yerine getiremez ve birkaç Windows arka plan programı, normal süreç olarak yürütme seçeneğini içerir.

Klasik macOS ve Mac OS

Klasik Mac OS'ta işletim sistemini yeniden oluşturan, önyükleme sırasında yüklenen dosyalar tarafından çeşitli isteğe bağlı hizmetler ve özellikler kolaylaştırıldı.

Bunlara kontrol panelleri ve sistem uzantıları adı verildi. Standart Mac OS'nin sonraki sürümleri, bunları tamamen gelişmiş, yüzü olmayan arka plan uygulamalarıyla genişletti.

Bu uygulamalar arka planda çalışan normal uygulamalardır. Bunlar hâlâ kullanıcıya normal sistem uzantıları olarak belirtiliyordu.

macOS bir Unix sistemidir ve arka plan programlarını kullanır. MacOS, Windows'un arka plan programları için yaptığı gibi bu terimi uygulamak yerine, hizmetler menüsü aracılığıyla seçilen işlevleri uygulayan yazılımı belirlemek için hizmet terimini uygular.

Tipik daemon işlevleri

  • Cron gibi planlanmış eylemleri yürütün.
  • RAID dizisi veya sabit disk durumu gibi sistemleri izleyin.
  • Ağın isteğine yanıt verin ve ağ bağlantı noktasını açın (bağlantı noktası 80 gibi).

Bir kabuk istemi için arka plan programlarını nasıl başlatırız, yeniden başlatırız veya durdururuz?

Servis komutlarını aşağıdaki gibi uygulamamız gerekiyor:

 service daemon-name-here start service daemon-name-here stop service daemon-name-here restart 

Aşağıdaki örnekte yıldızlar, yeniden başlat ve durdur.

 service httpd start service httpd stop service httpd restart 

Çalışan her arka plan programının listesini nasıl kontrol ederiz?

Kurulu her arka plan programının durumunu kontrol etmek için şunu yazın:

 service - -status-all 

Daemonumuzu Planlamak

Ne yapacaksın?

Arka plan programının bir şeyi uygulaması ve onu iyi bir şekilde uygulaması gerekir. Bu tek şey, birden fazla etki alanı üzerindeki çok sayıda posta kutusunu yönetmek kadar karmaşık veya onu bir yöneticiye postalamak ve bir rapor belirtmek için sendmail'i çağırmak kadar kolay olabilir.

Her halükarda bir arka plan programının ne yapması gerektiğine dair daha iyi bir fikrimiz olmalı. Belirleyebileceğimiz veya belirtmeyebileceğimiz diğer birkaç daemon ile etkileşime girecek. Ayrıca incelenmesi gereken başka bir şeydir.

alfa beta budama

Etkileşim

Daemon'ların kullanıcıyla hiçbir zaman doğrudan bir terminal aracılığıyla iletişim kurmaması gerekir. Her iletişim, GUI+GTK kadar karmaşık veya bireysel bir set kadar kolay olabilen birkaç arayüz türünden (belirlememiz gerekebilecek veya gerekmeyebilecek) geçer.

Daemon'un temel yapısı

Daemon, işe başladığında kendisini gerçek işe hazırlamak için birkaç düşük seviyeli ev işi yapmak zorunda. Aşağıdaki gibi bazı adımları içerir:

  • Bir süper süreci çatallayın (ana süreç)
  • Dosya modunun maskesini değiştirin (umask)
  • Yazmak için günlükleri açın
  • Özel bir Oturum Kimliği oluşturun (kısaca SID)
  • Çalışma dizinini (geçerli) güvenli bir yere değiştirin
  • Dosyanın sınıflandırma tanımlayıcılarını kapat
  • Orijinal daemon kodunu girin

Unix ve Linux benzeri sistemler için daemon hizmetlerinin listesi

    Anakron:Başlangıç ​​zamanında gecikmeli cron eylemlerini çalıştırır.amd:Auto Mount Daemon'un kısaltmasıdır.vesaire:Aracı uygulayarak kuyruğa alınan işleri yürütür.son dakika:Gelişmiş Güç Yönetimi Daemon'u anlamına gelir.Crond:Bu bir görev zamanlayıcı arka plan programıdır.otomatikler:Automounter arka plan programının, talep üzerine cihazların bağlantısının kesilmesine ve takılmasına izin vermesine yardımcı olur.dhcpd:Dinamik Ana Bilgisayar Yapılandırma Protokolü anlamına gelir. Ayrıca bir İnternet Bootstrap Protokol Sunucusudur.bardaklar:CUPS yazıcı arka plan programı anlamına gelir.ftpd:FTP Sunucusu Daemon'unun kısaltmasıdır.httpd:Bu bir Web Sunucusu Daemon'udur.kapılı:Egpup'un yerine geçen ve yönlendirilen arka plan programlarını yönlendirebilir ve birden fazla yönlendirme protokolünü yönetebilir.lpd:Line Printer Daemon'un kısaltmasıdır.imapd:Bu imap sunucusu arka plan programıdır.inetd:İnternet Süper Sunucusu Daemon'un kısaltmasıdır.memchached:Bellek içi dağıtılmış bir nesne önbellekleme arka plan programıdır.MySQL:Bu bir veritabanı sunucusu arka plan programıdır.montaj:Bu bir binek arka plan programıdır.nfsd:Ağ Dosya Paylaşımı Daemon'unun kısaltmasıdır.adı:Bu bir DNS sunucusu arka plan programıdır.sürü:Nfs dosyalarının kilitleme servislerini başlatmak ve durdurmak için uygulanır.ntpd:Ağ Zaman Protokolü hizmet arka plan programı anlamına gelir.numara:Ağ Mesaj Bloğu Daemon'unun kısaltmasıdır.postgresql:Bu bir veritabanı sunucusu arka plan programıdır.sonek:Bir posta taşıma aracısıdır ve Sendmail'in yerine kullanılır.rpcbind:Uzaktan Prosedür Çağrısı Bağlama Programı anlamına gelir.yönlendirildi:Yönlendirme tablolarını yönetir.şunu söyle:Bu bir Samba Daemon'udur.posta göndermek:Bu bir posta aktarım aracısı arka plan programıdır.smtpd:Basit Posta Aktarım Protokolü Daemon'u anlamına gelir.kalamar:Proxy sunucusu arka plan programını önbelleğe alan bir web sayfasıdır.snmpd:Basit Ağ Yönetimi Protokolü Daemon'u anlamına gelir.senkronizasyon:Çeşitli dosya sistemlerini sistem belleğiyle birlikte senkronize tutabilir.sshd:Bu bir Güvenli Kabuk Sunucusu Daemonudur.sistem günlüğü:Sistem günlüğü arka plan programı anlamına gelir.telnet:Bu bir Telnet Sunucusu Daemonudur.tcpd:Yetkilendirmeyi hosts.deny ve hosts.allow'dan inetd tabanlı hizmetlere sınırlayabilen bir hizmet sarmalayıcıya sahiptir.vsftpd:Çok Güvenli FTP Programı anlamına gelir.webmin:Web tabanlı bir yönetim sunucusu arka plan programıdır.xntd:Bu bir Ağ Zaman Sunucusu Daemonudur.xinetd:Bu, Gelişmiş İnternet Süper Sunucusu Daemon'udur.