logo

Demon Linuksa

Co to jest demon?

Demon to rodzaj programu działającego w systemie operacyjnym typu UNIX, który działa w tle dyskretnie, a nie po bezpośrednim dostępie użytkownika. Czeka na uruchomienie się przez pojawienie się określonego stanu lub zdarzenia.

Zazwyczaj systemy typu UNIX uruchamiają wiele demonów, głównie w celu obsługi żądań usług przesyłanych przez inne systemy w sieci, do aktywności sprzętu, a także do odpowiadania na inne programy.

Przykładami warunków lub działań, które mogą aktywować demony do działania, może być konkretna data lub godzina, upływ określonego przedziału czasu, otrzymanie żądania internetowego lub wiadomości e-mail utworzonej z określonej linii komunikacyjnej oraz umieszczenie pliku w określonym katalogu.

Ciąg podzielony w c++

Nie jest obowiązkowe, aby sprawca warunku lub działania wiedział, że demon nasłuchuje.

Jednak programy często wdrażają akcję tylko dlatego, że wiedzą, że pośrednio pobudzi to demona.

Demon nazywany jest także procesami działającymi w tle. Jest to program UNIX lub Linux działający w tle. Prawie każdy demon ma nazwy kończące się na literę „d”. Na przykład sshd zarządza połączeniami zdalnego dostępu SSH lub demonem httpd zarządzającym serwerem Apache. Często Linux uruchamia demony w momencie startu.

Różne skrypty powłoki są zapisywane w katalogu /etc/init.d. Skrypty te służą do uruchamiania i zatrzymywania demonów.

Procesy Linuksa

Zwykle demony są tworzone jako procesy. Procesy te są uruchomionymi lub wykonującymi instancjami programu. Procesem zarządza jądro będące rdzeniem systemu operacyjnego, które przypisuje wszystkie specjalne numery identyfikacyjne procesom.

W systemie Linux istnieją głównie trzy popularne rodzaje procesów, które są następujące:

  • Seria
  • Interaktywny
  • Demon

Proces wsadowy jest przesyłany poprzez kolejkę procesów i nie jest powiązany z wierszem poleceń. Procesy te dobrze nadają się do wykonywania powtarzalnych operacji, jeśli wykorzystanie systemu jest niewielkie.

różnica między firmą a firmą

Proces interaktywny jest interaktywnie wykonywany przez użytkownika w wierszu poleceń.

Demon jest identyfikowany przez system, taki jak te procesy, których proces nadrzędny zawiera PID równy jeden.

Zawsze definiuje init procesu. Proces init jest procesem początkowym, który rozpoczyna się wraz z uruchomieniem systemu Linux i pozostaje w systemie aż do jego zamknięcia.

Init może przyjąć dowolny typ procesu, którego proces nadrzędny kończy się lub umiera bez oczekiwania na status procesu potomnego.

Tak więc podstawową techniką uruchamiania demona jest dzielenie lub rozwidlanie dwa razy lub raz, a także umożliwienie zakończenia procesów nadrzędnych, podczas gdy proces potomny zaczyna wdrażać swoją ogólną funkcję.

Historia demonów

Kilka demonów jest publikowanych przez skrypty inicjujące System V. Są to skrypty lub krótkie programy, które mogą być uruchamiane automatycznie podczas uruchamiania systemu. Mogą być odtwarzane w określonych odstępach czasu lub przetrwać przez cały czas trwania sesji.

Teraz kilka demonów jest uruchamianych tylko w razie potrzeby i przez jednego demona (xinetd), zamiast działać w sposób ciągły. Xinetd jest znany jako superserwer TCP/IP.

Uruchamia się w momencie uruchamiania i nasłuchuje także różnych portów przypisanych do procesów wymienionych w pliku konfiguracyjnym, tj. /etc/xinetd.conf lub /etc/inetd.conf.

Ręcznie można również uruchomić kilka demonów, które będą uruchamiane przez aplikacje i system operacyjny. Wszystkie demony mają indywidualny skrypt w kilku systemach operacyjnych typu UNIX, w tym w Linuksie, za pomocą którego można je ponownie uruchomić i zakończyć.

Zarządzanie tymi skryptami jest realizowane zgodnie z poziomami działania. Poziom działania można zdefiniować jako stan operacyjny lub konfiguracyjny systemu, który pozwala na dostępność tylko niektórych wybranych procesów. Rozpoczęcie na odrębnym poziomie działania może pomóc w rozwiązaniu pewnych problemów lub problemów, w tym naprawieniu błędów systemowych.

Kluczowe punkty demonów

Poniżej wyjaśniono kilka ważnych kluczowych punktów Daemons:

  • Słowo demon pochodzi od greckiego demona metodologicznego. Były to istoty nadprzyrodzone, leżące pomiędzy śmiertelnikami a bogami i posiadające wyjątkową moc lub wiedzę.
  • W 1963 roku termin demon został po raz pierwszy zastosowany w kontekście systemowym w pionierskim projekcie MAC z pomocą IBM 7094.
  • Został zainspirowany demonem termodynamiki i fizyki Maxwella, który był abstrakcyjnym czynnikiem utrzymującym cząsteczki o różnych prędkościach i niestrudzenie pracującym w tle.
  • Następnie termin ten został użyty do opisania procesów działających w tle, które niestrudzenie realizowały zadania systemowe.
  • Pierwszym demonem był program, który automatycznie tworzył kopie zapasowe na taśmach.
  • Termin ten był używany w odniesieniu do korzystania z komputera. Był to skrót od Disk and Execution MONitor.
  • Różne programy zwane usługami, które demony działają w systemie operacyjnym Microsoft Windows. Jednak w odniesieniu do tych systemów czasami używane jest również słowo demon.

Implementacja demonów

Systemy Unixowe

Proces systemu uniksowego jest demonem, jeśli jego proces nadrzędny umiera i demon ten jest wyznaczany jako proces inicjujący (proces numer 1) jako proces nadrzędny i nie zawiera terminala sterującego w ściśle techniczny sposób.

Demonem może być jednak dowolny proces działający w tle, niezależnie od tego, czy jest dzieckiem procesu inicjującego, czy nie.

nieuporządkowana_mapa c++

Podstawową techniką procedury staje się demon w systemie UNIX, gdy procedura jest rozpoczynana za pomocą wiersza poleceń lub skryptów startowych, takich jak skrypt Startera systemu lub skrypt inicjujący, obejmuje:

  • Opcjonalne usuwanie niepotrzebnych zmiennych poprzez środowisko.
  • Działa jako zadanie w tle poprzez wyjście i rozwidlenie. Umożliwia rodzicowi demona (procesowi startowemu lub powłoce) otrzymywanie powiadomień o wyjściu i kontynuowanie normalnego wykonywania.
  • Odłączanie poprzez sekcję wywołującą, zwykle wykonywane w ramach pojedynczej operacji, setsid():
    • Dysocjacja poprzez sterowanie tty.
    • Tworzenie nowszej sesji i zostanie jej liderem sesji.
    • Zostanie liderem grupy procesowej.
  • Jeśli demon chce mieć pewność, że nie odziedziczy nowego sterowania tty, może zakończyć działanie i ponownie wykonać fork. Oznacza to, że nie jest już liderem sesji w nowej sesji i nie może odziedziczyć kontroli od TTY.
  • Ustawienie bieżącego katalogu roboczego jako katalogu głównego, aby proces nie zajmował żadnego używanego katalogu, który mógłby znajdować się w zamontowanym systemie plików.
  • Zmodyfikowanie maski uprawnień na 0 w celu umożliwienia tworzenia(), otwierania() i innych wywołań systemu operacyjnego, aby ułatwić korzystanie z maski uprawnień i nie polegać na wszystkich maskach wywołujących.
  • Przekierowanie deskryptorów plików 0, 1 i 2 dla standardowych strumieni (stderr, stdout, stdin) do pliku dziennika lub /dev/null i zamknięcie wszystkich pozostałych plików deskryptorów uzyskanych w procesie nadrzędnym.

Kiedy proces rozpoczyna się od dowolnego demona superserwera, takiego jak systemd, launchd lub inetd, superserwer zaimplementuje te funkcje dla tego procesu, z wyjątkiem demonów w starym stylu, które nie zostały przekształcone w uruchamiające się w systemie systemd i opisane jako wielowątkowe i Type=forking serwery datagramów na inetd.

skrócić i usunąć różnicę

MS-DOS

Program podobny do demona został wykonany jako oprogramowanie rezydentne (w skrócie TSR) na platformie Microsoft DOS.

WindowsNT

Programy zwane usługami Windows implementują funkcje tych demonów w systemach Microsoft Windows NT. Wykonują się jako procesy i zwykle nie wchodzą w interakcję z myszą, klawiaturą i monitorem. Mogą zostać uruchomione za pomocą systemu operacyjnego podczas rozruchu.

Usługi systemu Windows są ręcznie zatrzymywane, uruchamiane i konfigurowane przez Panel sterowania (dedykowany program konfiguracyjny/kontrolujący), system skryptowy PowerShell lub polecenia net stop i net start, element kontrolera usług menedżera kontroli usług.

Jednakże dowolna aplikacja systemu Windows może realizować obowiązki demona, a nie tylko usługę, a kilka demonów systemu Windows zawiera opcję wykonywania jako normalny proces.

Klasyczny system macOS i Mac OS

Pliki ładowane podczas uruchamiania komputera, które odbudowują system operacyjny w klasycznym systemie Mac OS, umożliwiły korzystanie z różnych opcjonalnych usług i funkcji.

Nazywano je panelami sterowania i rozszerzeniami systemu. Późniejsze wersje standardowego systemu Mac OS powiększyły je o całkowicie rozwinięte, pozbawione twarzy aplikacje działające w tle.

Te aplikacje to zwykłe aplikacje działające w tle. Były one nadal określane jako zwykłe rozszerzenia systemowe dla użytkownika.

macOS to system Unix i wykorzystuje demony. W systemie macOS termin „usługa” stosuje się do oznaczania oprogramowania realizującego funkcje wybrane z menu usług, zamiast stosować ten termin tak, jak robi to system Windows w przypadku demonów.

Typowe funkcje demonów

  • Wykonaj zaplanowane działania, takie jak cron.
  • Monitoruj systemy, takie jak macierz RAID lub stan dysku twardego.
  • Odpowiedz na żądanie sieci i otwórz port sieciowy (np. port 80).

Jak uruchomić, zrestartować lub zatrzymać demony, aby wyświetlić monit powłoki?

Musimy zastosować ich polecenia serwisowe, jak poniżej:

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

W poniższym przykładzie, gwiazdki, uruchom ponownie i zatrzymaj.

 service httpd start service httpd stop service httpd restart 

Jak sprawdzić listę każdego działającego demona?

Aby sprawdzić status każdego zainstalowanego demona, wpisz:

 service - -status-all 

Planowanie naszego demona

Co demon zamierza zrobić?

Demon musi zaimplementować jedną rzecz i zaimplementować ją dobrze. Ta pojedyncza rzecz może być tak skomplikowana, jak obsługa wielu skrzynek pocztowych w więcej niż jednej domenie lub tak prosta, jak wywołanie sendmaila w celu wysłania wiadomości do administratora i określenia raportu.

W każdym przypadku musimy mieć lepsze pojęcie o tym, co demon musi zrobić. Będzie wchodzić w interakcję z kilkoma innymi demonami, które możemy określić lub nie. Jest to także coś innego do sprawdzenia.

alfabet na cyfry

Interakcja

Demony nie mogą nigdy komunikować się z użytkownikiem bezpośrednio przez terminal. Każda komunikacja przechodzi przez kilka rodzajów interfejsów (które być może będziemy musieli określić lub nie), które mogą być tak skomplikowane jak GUI + GTK lub tak proste, jak indywidualny zestaw.

Podstawowa struktura demona

Daemon musi wykonać kilka prac domowych na niskim poziomie, aby przygotować się do prawdziwej pracy po uruchomieniu. Obejmuje kilka kroków, które są następujące:

  • Rozwiń super proces (proces nadrzędny)
  • Zmień maskę trybu pliku (umask)
  • Otwórz dzienniki, aby je zapisać
  • Utwórz specjalny identyfikator sesji (w skrócie SID)
  • Zmodyfikuj katalog roboczy (bieżący) w bezpiecznym miejscu
  • Zamknij deskryptory klas pliku
  • Wprowadź oryginalny kod demona

Lista usług demonicznych dla systemów Unix i Linux

    anachron:Uruchamia opóźnione akcje cron w momencie uruchamiania.amd:Skrót oznacza Auto Mount Daemon.itp:Wykonuje zadania w kolejce, stosując narzędzie.apmd:Oznacza demona zaawansowanego zarządzania energią.crond:Jest to demon harmonogramu zadań.autofs:Pomaga demonowi automountera, umożliwiając odmontowywanie i montowanie urządzeń na żądanie.dhcpd:Oznacza protokół dynamicznej konfiguracji hosta. Jest to także internetowy serwer protokołu Bootstrap.kubki:Oznacza demona drukarki CUPS.FTP:Oznacza demona serwera FTP.httpd:Jest to demon serwera WWW.ogrodzony:Może trasować demony zastępujące egpup i routować oraz zarządzać więcej niż jednym protokołem routingu.lpd:Oznacza demona drukarki liniowej.imapd:Jest to demon serwera imap.inetd:Skrót od Internet Superserver Daemon.memchached:Jest to demon buforujący obiekty rozproszone w pamięci.mysql:Jest to demon serwera bazy danych.zamontować:Jest to demon montowania.nfsd:Oznacza demona sieciowego udostępniania plików.o imieniu:Jest to demon serwera DNS.nflock:Służy do uruchamiania i zatrzymywania usług blokowania plików nfs.ntpd:Oznacza demona usługi Network Time Protocol.nieważne:Oznacza demona bloku komunikatów sieciowych.postgresql:Jest to demon serwera bazy danych.przyrostek:Jest to agent transportu poczty, używany jako substytut Sendmaila.rpcbind:Oznacza demona powiązania zdalnego wywołania procedury.kierowane:Obsługuje tablice routingu.smd:Jest to demon Samby.Wyślij maila:Jest to demon agenta przesyłania poczty.smtpd:Oznacza demona prostego protokołu przesyłania poczty.kałamarnica:Jest to demon serwera proxy buforujący strony internetowe.snmpd:Oznacza demona prostego protokołu zarządzania siecią.synchronizacja:Może synchronizować różne systemy plików wraz z pamięcią systemową.sshd:Jest to demon serwera Secure Shell.syslogd:Oznacza demona rejestrowania systemu.telnetd:Jest to demon serwera Telnet.TCPD:Posiada opakowanie usług, które może ograniczyć autoryzację do usług opartych na inetd z hosts.deny i hosts.allow.vsftpd:Oznacza bardzo bezpieczny demon FTP.webmin:Jest to demon serwera administracyjnego oparty na sieci WWW.xntd:Jest to demon sieciowego serwera czasu.xinetd:Jest to demon ulepszonego superserwera internetowego.