Siden Linux-operativsystemet er karakterisert som et multitasking-operativsystem, er en demon per definisjon et program som kontinuerlig kjøres som en bakgrunnsprosess. Kort sagt, utførelsen av denne prosessen er ikke avhengig av en aktiv brukers systeminteraksjon. En vanlig systembruker kan ikke kontrollere den periodiske kjøringen av en demonprosess.
Navngivningskonvensjonen som definerer de fleste daemon-prosesser er bokstaven 'suffiks' d. Denne navnekonvensjonen gjør det mulig å skille mellom normale systemprosesser og daemondrevne prosesser. For eksempel, sshd er en demoneprosess som er ansvarlig for styringen av innkommendeSSH tilkoblinger. Et annet eksempel på en demonprosess ersyslogd. Det er ansvarlig for Linux-systemloggingsanlegget.
I et Linux-miljø er lanseringen av demoner på oppstartstidspunktet. Siden Linux-systemet er en perfekt Unix-klon, kvalifiserer en init-prosess som overordnet prosess til en demon. For å starte og stoppe demoner på Linux-operativsystemet ditt, må du først få tilgang til/ etc / init.d skriptkatalogen på operativsystemet ditt.
Vanlige demoner fungerer
- Det gjør at systemet ditt kan svare riktig på nettverksforespørsler ved å knytte hver forespørsel til en kompatibel nettverksport. En typisk nettverksport som håndteres av demoner er port 80.
- Daemons gjør det mulig å kjøre eller utføre planlagte systemoppgaver. Demonen som er ansvarlig for denne spesifikke oppgaven heter cron. Det vil skape en cron jobb som vil håndtere den periodiske utførelsen av dine planlagte oppgaver.
- Daemons tilbyr også et uvurderlig bidrag til å overvåke ytelsen til systemet ditt. For eksempel kan de sjekke opp RAID-matrisen eller harddiskens helse.
Nyttige Linux-tjenestedemoner
- amd: Auto Mount Daemon
- anacron: Starttidskjøring av forsinkede cron-oppgaver
- apmd: Advanced Power Management Daemon
- atd: Bruker ved verktøyfunksjonalitet for å utføre jobber i kø
- autofs: fungerer hånd i hånd med automounter-demonen for å lette montering og demontering av systemenheter etter behov
- crond: en demon som håndterer oppgaveplanlegging
- cupsd: en demon som håndterer CUPS-utskrift
- DHCP: daemon for både Bootstrap-protokollserver og Dynamic Host Configuration Protocol.
- gated: rutedemon som er ansvarlig for flere rutingsprotokoller. Det erstatter rutet og egpup
- httpd: en demon som omhandler webservere som Apache
- inetd: daemon assosiert med Internet Superserver
- imapd: demon for IMAP-serveren
- lpd: Line Printer Daemon
- memcached: objektbufferdemon som distribueres i minnet
- montert: monter daemon
- MySQL: daemon for MySQL-databaseserveren
- navngitt: daemon for DNS-server
- nfsd: Deling av nettverksfildeling
- nfslock: Siden nfsd er tilknyttet fillåsingstjenester, kan denne demonen starte og stoppe disse tjenestene.
- nmbd: daemon for Network Message Block
- ntpd: daemon for Network Time Protocol-tjenesten
- postfix: en demon som fungerer som posttransportagent. Det er et alternativ til sendmail.
- Postgresql: daemon for Postgres databaseserver
- rutet: daemon for administrering av rutetabeller
- rpcbind: daemon assosiert med Remote Procedure Call Bind
- sendmail: en demon som fungerer som en mailoverføringsagent
- smbd: daemon for Samba SMB-server
- smtpd: daemon for Simple Mail Transfer Protocol
- snmpd: daemon for Simple Network Management Protocol
- akkar: daemon tilknyttet en proxy-server for hurtigbufring av nettsider
- sshd: daemon tilknyttet Secure Shell Server
- synkronisert: demon for synkronisering av systemminne med systemfiler
- Syslog: en demon som utfører systemlogging
- tcpd: denne daemon-tjenesteinnpakningen utfører tilgangsbegrensningsprotokoller relatert til de inetd-baserte daemon-tjenestene. Det gjennomfører disse begrensningene gjennom verter.tillate og verter.benekte.
- Telnetd: daemon for telnet-serveren
- vsftpd: daemon for veldig sikker File Transfer Protocol
- webmin: daemon for den nettbaserte administrasjonsserveren
- xinetd: daemon assosiert med Enhanced Internet Supervisor
- xntd: daemon for Network Time Server
Enten du er en nybegynner-, mellom- eller ekspertbruker i Linux-operativsystemverdenen, vil du aldri unnlate å bli kjent med noen av de ovennevnte demonene når du fremmer dine ferdigheter og ekspertise i dette OS-miljøet.
Starte / stoppe / starte demoner: den terminalbaserte tilnærmingen
Nå som du har en liste over nyttige Linux-demoner å huske og utforske, er det første du trenger å vite hvordan du starter, stopper eller starter disse demonene på nytt. Når Linux Terminal er lansert, bør du vurdere følgende syntaksregler for å starte, stoppe og starte en demone på Linux-operativsystemet.
tjeneste foretrukket-daemon-navn start tjenesten foretrukket-demon-navn stopp tjeneste foretrukket daemon-navn omstart
Bytt ut foretrukket-demon-navn syntaksargument med navnet på Linux-systemets demon som du velger. Du kan velge en fra dememonlisten som er uthevet ovenfor så lenge den er aktiv eller allerede definert på Linux-systemet ditt. For eksempel kan vi implementere den praktiske bruken av syntaksen ovenfor ved å prøve å starte, stoppe og starte adaemon. Naviger til / etc / init.d katalog på terminalen din for listen over tilgjengelige demoner på Linux-systemet ditt.
Oppføring av Linux-systemets demoner
En mer effektiv måte å merke tilgjengelige demoner på Linux-systemet ditt i stedet for å navigere til / etc / init.d katalogen er å liste opp alle definerte aktive og inaktive demoner fra den katalogen med en enkelt kommando. Følgende kommando er effektiv for å nå dette målet.
$ service -status-all
Avstivede positive [+] og negative [-] tegn foran de oppførte demonnavnene antyder at de er henholdsvis aktive eller inaktive.
Arbeide med brukerdefinerte demoner
Spesifikke regler eller protokoller må følges for å opprette og implementere en brukerdefinert daemon med hell. Disse protokollene hjelper deg med å forstå utførelsen av demoner i ethvert Linux-miljø fullt ut. Daemons er også fleksible nok til å grensesnitt med kjernemoduler gjennom systemanrop. Denne funksjonen for daemon-funksjonalitet støtter interaksjonen med maskinvareenheter som PDAer (Personal Digital Assistants), skrivere og levedyktige eksterne kontrollkort. Byggesteinene til demoner bidrar også til den karakteristiske kraften og fleksibiliteten til Linux-operativsystemet.
En relatabel daemonimplementering ved hjelp av Python er nøye demonstrert og dokumentert av Sander Marechal. Vær opptatt av å følge henrettelsesordren når du lager denne demonen. For det første trenger Linux-systemet ditt installasjon av Python-pakker for å kunne utvikle demoner. For å installere Python kan du bruke følgende kommando.
$ sudo apt installere python3-pip python3-dev
Koblingen til Sander Marechals forfatter Python-demonkode tilbyr også en raffinert Python 3-kodeversjon. Det vil hjelpe hvis du vurderer å implementere den for å forstå bedre hvordan demoner fungerer.
Hvis du er usikker på om du har Python installert, kjører du følgende kommando på Linux-terminalen.
$ python3 --versjon
Formålet med en hvilken som helst demon
Siden en enkelt demon er dedikert til å håndtere en bestemt oppgave, bør den utføre den til perfeksjon. Den aktuelle oppgaven kan være så enkel som å lage en rapport og sende den til en administrator via sendmail eller så komplisert som å administrere flere domener knyttet til flere postkasser. På et tidspunkt må demonen du skal lage, snakke med andre eksisterende demoner.
bruker-til-demon-interaksjon
Det frarådes å få systembrukeren og den opprettede demonen til å kommunisere direkte. Hvis det er nødvendig for demonen, lager du for å kommunisere med en systembruker. Denne kommunikasjonen kan tilrettelegges gjennom noe som et GUI-grensesnitt. Denne kommunikasjonsplattformen kan enten ha GTK + GUI-kompleksitet eller signalsett enkelhet.
Å lage din demon
Mange tilnærminger støtter opprettelsen av demoner. For eksempel kan du bruke kommandolinjegrensesnittet til å demonisere et Python-skript som følger:
$ python my_python_script.py &
Du kan lagre Sander Marechals forfatter Python3-demonkode på en Python-fil og demonisere den med kommandoen ovenfor. Mens den ovennevnte terminalkommandoen enkelt vil lage en demon for deg, må du takle utfordringer som uforutsigbare terminalutganger. Disse utfordringene avhenger av hvor godt du omformet Python-demonkoden din. Ovennevnte tilnærming støtter heller ikke tildeling av PID-låsefiler til spesifikke demoner. Det gjør det umulig å kontrollere noen demon da de fleste av dem kjøres øyeblikkelig. På den annen side, hvis du bare trenger en enkel daemon, vil den ovennevnte tilnærmingen gi deg de ønskede daemon-resultatene.
Daemon grunnleggende struktur
Før en demon utfører eller utfører en tiltenkt funksjon, må den vurdere noen forutinntatte regler som fører til utførelsen. Du kan tenke på disse reglene som husarbeid på lavt nivå som fører til den faktiske oppgaven. Disse reglene kan brytes ned i følgende trinn.
- Å lage en gaffel fra en foreldreprosess foregår først
- Endring av umask (filmodusmaske) følger
- Logger åpnes for skriving
- Det opprettes en unik SID (økt-ID)
- Utførelse bytter fra gjeldende arbeidskatalog til et sekundært sted for å bevare filintegriteten
- Standard filbeskrivelser er stengt
- Utførelse av målrettet daemon-kode
Mer om implementeringer av demoner, finner du på GitHub.