logo

Dimoni de Linux

Què és un dimoni?

Un dimoni és una mena de programa sobre un sistema operatiu similar a UNIX que s'executa en segon pla de manera discreta, en comptes de l'accés directe d'un usuari. Espera ser desencadenat per l'aparició d'una condició o esdeveniment particular.

Normalment, els sistemes semblants a UNIX executen nombrosos dimonis, principalment per atendre sol·licituds de serveis a través d'altres sistemes de la xarxa, per a l'activitat del maquinari i també per respondre a altres programes.

Alguns exemples de condicions o accions que podrien activar dimonis a l'activitat poden ser una data o hora particulars, el pas d'un interval de temps descrit, la recepció d'una sol·licitud web o un correu electrònic creat des d'una línia de comunicació específica i un fitxer que arriba a un directori específic.

aleatòria c

No és obligatori que l'autor d'una condició o acció conegui que el dimoni està escoltant.

Tanmateix, els programes sovint implementen una acció només perquè se sap que despertaria un dimoni implícitament.

Un dimoni també s'anomena processos en segon pla. És un programa UNIX o Linux que s'executa en segon pla. Gairebé tots els dimonis contenen noms que acaben amb 'd' la lletra. Per exemple, sshd, gestiona les connexions d'accés remot SSH, o el dimoni httpd que gestiona el servidor Apache. Sovint, Linux comença els dimonis a l'hora d'inici.

Diversos scripts d'intèrpret d'ordres es guarden dins del directori que és /etc/init.d. Aquests scripts s'utilitzen per iniciar i aturar dimonis.

Processos Linux

Normalment, els dimonis s'instanciencien com a processos. Aquests processos són les instàncies en execució o execució d'un programa. Un procés és gestionat pel nucli que és el nucli del sistema operatiu i assigna tots els números d'identificació especials del procés.

A Linux, hi ha principalment tres tipus de processos comuns que són els següents:

  • Lot
  • Interactiu
  • Dimoni

El procés per lots s'envia a través d'una cua de processos i no està relacionat amb la línia d'ordres. Aquests processos són molt adequats per realitzar operacions recurrents si l'ús del sistema és baix.

El procés interactiu és executat de manera interactiva per l'usuari a la línia d'ordres.

El dimoni s'identifica per un sistema com aquells processos el procés pare dels quals conté un PID d'un.

reinicieu mysql ubuntu

Sempre, defineix el procés init. El procés d'inici és el procés inicial que s'inicia quan s'inicia un sistema Linux i es manté sobre el sistema fins que el sistema s'apaga.

L'init pot adoptar qualsevol tipus de procés el procés principal del qual finalitza o mor sense esperar l'estat del procés fill.

Per tant, la tècnica bàsica per llançar el dimoni és dividir o bifurcar dues vegades o una vegada i també permetre que els processos pare acabin mentre el procés fill comença a implementar la seva funció general.

Història dels dimonis

Els scripts d'inici del sistema V publiquen alguns dimonis. Són scripts o programes breus que es poden executar automàticament si el sistema s'està iniciant. Es poden reproduir a intervals o sobreviure durant la sessió.

Ara, diversos dimonis s'inicien només segons sigui necessari i per un dimoni (xinetd) en lloc d'executar-se contínuament. El xinetd es coneix com a superservidor TCP/IP.

pandas creant dataframe

S'inicia a l'hora d'inici i també escolta diversos ports que s'assignen als processos enumerats dins del fitxer de configuració, és a dir, /etc/xinetd.conf o /etc/inetd.conf.

Manualment, també es podrien iniciar alguns dimonis per ser llançats pels programes d'aplicació i el sistema operatiu. Tots els dimonis tenen un script individual en diversos sistemes operatius semblants a UNIX, inclòs Linux, amb el qual es podria reiniciar i finalitzar.

La gestió d'aquests scripts s'implementa segons els nivells d'execució. El nivell d'execució es pot definir com un estat de funcionament o configuració d'un sistema que només permet que alguns processos seleccionats estiguin disponibles. Començar en un nivell d'execució diferent pot ajudar a resoldre determinats problemes o problemes, inclosa la rectificació d'errors del sistema.

Punts clau dels dimonis

A continuació s'expliquen alguns punts clau importants dels Daemons:

  • La paraula dimoni prové de la metodologia grega daemon. Aquests eren éssers sobrenaturals que es troben entre els mortals i els déus i que posseïen un poder o un coneixement únics.
  • El 1963, el terme dimoni es va aplicar inicialment dins d'un context de sistema en el projecte pioner MAC amb l'ajuda d'IBM 7094.
  • Es va inspirar en el dimoni de la termodinàmica i la física de Maxwell, que era un agent abstracte que suportava molècules de diferents velocitats i treballava en segon pla incansablement.
  • Després d'això, el terme es va utilitzar per descriure els processos de fons que treballaven per implementar les tasques del sistema incansablement.
  • El primer ordinador dimoni va ser un programa que creava còpies de seguretat de cinta automàticament.
  • Aquest terme es va utilitzar per a l'ús de l'ordinador. Era com una forma abreujada de Disk and Execution MONitor.
  • Diversos programes anomenats serveis els dimonis funcionen al sistema operatiu Microsoft Windows. Tanmateix, la paraula dimoni també s'està aplicant de vegades amb aquests sistemes.

Implementació de Daemons

Sistemes com Unix

El procés d'un sistema semblant a Unix és un dimoni si el seu procés pare mor i aquest dimoni és designat com a procés d'inici (procés número 1) com a procés principal i no conté cap terminal de control de manera estrictament tècnica.

Tanmateix, un dimoni pot ser qualsevol procés de fons, sigui fill del procés d'inici o no.

La tècnica bàsica per a un procediment es converteix en un dimoni al sistema com UNIX quan el procediment s'inicia mitjançant la línia d'ordres o scripts d'inici com l'script d'inici del sistema o l'script d'inici, implica:

  • Eliminació de variables innecessàries a través de l'entorn opcionalment.
  • Executant com a tasca de fons sortint i bifurcant. Permet al pare del dimoni (procés d'inici o shell) rebre notificacions de sortida i continuar amb l'execució normal.
  • Desenganxant-se a través de la secció d'invocació, realitzada normalment mitjançant una operació individual, setsid():
    • Dissociant mitjançant el control tty.
    • Fer una sessió més nova i convertir-se en el líder de la sessió d'aquesta.
    • Esdevenir el líder del grup de processos.
  • Si el dimoni vol assegurar-se que no heretarà un nou control tty, podria sortir i bifurcar-se de nou. Vol dir que ja no és cap líder de sessió dins de la nova sessió i que no pot heretar cap control tty.
  • Establir el directori de treball actual com a directori arrel perquè el procés no prengui cap directori en ús que pugui estar en un sistema de fitxers muntat.
  • Modificació de l'umask a 0 per permetre les crides create(), open() i altres del sistema operatiu per facilitar la seva màscara de permís i no dependre de tots els umask de la persona que truca.
  • Redirigir els descriptors de fitxers 0, 1 i 2 per als fluxos estàndard (stderr, stdout, stdin) a un fitxer de registre o /dev/null i tancant tots els altres fitxers descriptors adquirits mitjançant el procés pare.

Quan el procés comença per qualsevol dimoni de superservidor com systemd, launchd o inetd, el superservidor implementarà aquestes funcions per a aquest procés, excepte aquells dimonis d'estil antic que no s'han transformat en executar-se amb systemd i que es descriuen com a servidors de datagrames multiprocés i Type=forking. sobre inetd.

hrithik roshan

MS-DOS

El programa semblant a un dimoni es va executar com a programari d'acabar i romandre resident (en resum, TSR) dins de la plataforma Microsoft DOS.

Windows NT

Els programes coneguts com a serveis de Windows implementen les funcions d'aquests dimonis als sistemes Microsoft Windows NT. S'executen com a processos i normalment no interactuen amb el ratolí, el teclat i el monitor. Es poden llançar amb l'ajuda del sistema operatiu en el moment de l'arrencada.

Els serveis de Windows s'aturen, s'inicien i configuren manualment el tauler de control (un programa de configuració/control dedicat), el sistema d'scripts de PowerShell o les ordres net stop i net start, l'element controlador de servei del gestor de control de serveis.

Tot i això, qualsevol aplicació de Windows pot implementar les responsabilitats d'un dimoni no només com un servei i alguns dimonis de Windows contenen l'opció d'executar-se com a procés normal.

MacOS clàssic i Mac OS

Diversos serveis i funcions opcionals es van facilitar amb aquells fitxers carregats en el moment de l'arrencada que reconstrueixen el sistema operatiu al Mac OS clàssic.

S'anomenaven panells de control i extensions del sistema. Les versions posteriors de Mac OS estàndard els van ampliar amb aplicacions de fons sense rostre completament.

Aquestes aplicacions són aplicacions habituals que s'executen en segon pla. Encara s'especificaven com a extensions habituals del sistema per a l'usuari.

macOS és un sistema Unix i fa servir dimonis. El macOS aplica el terme del servei per designar programari que implementa les funcions escollides mitjançant el menú de serveis en lloc d'aplicar aquest terme com ho fa Windows per als dimonis.

Funcions típiques dels dimonis

  • Executeu accions programades com cron.
  • Superviseu sistemes com la matriu RAID o la salut del disc dur.
  • Respondre a la sol·licitud de la xarxa i obrir el port de xarxa (com el port 80).

Com iniciem, reiniciem o aturem els dimonis per a un indicador de l'intèrpret d'ordres?

Hem d'aplicar les seves ordres de servei com a continuació:

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

A l'exemple següent, estrelles, reinicieu i atureu-vos.

 service httpd start service httpd stop service httpd restart 

Com comprovem la llista de cada dimoni en execució?

Per comprovar l'estat de cada dimoni instal·lat, escriviu:

 service - -status-all 

Planificant el nostre dimoni

Quin dimoni farà?

El dimoni ha d'implementar una cosa i implementar-la bé. Això pot ser tan complicat com gestionar moltes bústies de correu en més d'un domini o tan fàcil com trucar a sendmail per enviar-lo a un administrador i especificar un informe.

Hem de tenir una millor idea del que ha de fer un dimoni en qualsevol cas. Interaccionarà amb alguns altres dimonis que podríem especificar o no. També és una altra cosa a examinar.

10 a la potència de 6

Interacció

Els dimonis mai no han de tenir cap comunicació amb l'usuari directament mitjançant un terminal. Cada comunicació passa per uns quants tipus d'interfícies (que potser hauríem d'especificar o no), que pot ser tan complicat com la GUI+GTK o tan fàcil com un conjunt individual.

L'estructura bàsica del dimoni

Daemon ha d'implementar unes quantes tasques domèstiques de baix nivell per preparar-se per a la feina real quan s'iniciï. Consisteix en alguns passos que són els següents:

  • Força un súper procés (procés principal)
  • Modifica la màscara del mode de fitxer (umask)
  • Obriu els registres per escriure
  • Feu un identificador de sessió especial (en breu SID)
  • Modifiqueu el directori de treball (actual) a un lloc segur
  • Tanca els descriptors de classificació del fitxer
  • Introduïu el codi dimoni original

Llista de serveis de dimonis per a sistemes semblants a Unix i Linux

    anacron:Executa accions cron retardades a l'hora d'inici.amd:Significa Auto Mount Daemon.etc:Executa treballs a la cua aplicant l'eina.apmd:Significa Advanced Power Management Daemon.crond:És un dimoni del planificador de tasques.autofs:Ajuda al dimoni de muntatge automàtic que permet desmuntar i muntar dispositius a la demanda.dhcpd:Són les sigles de Dynamic Host Configuration Protocol. A més, és un servidor de protocol d'arrencada d'Internet.cupsd:Significa el dimoni de la impressora CUPS.ftpd:Significa FTP Server Daemon.httpd:És un dimoni del servidor web.tancat:Pot encaminar els dimonis que substitueixen egpup i encaminats i gestionar més d'un protocol d'encaminament.lpd:Significa Line Printer Daemon.imapd:És el dimoni del servidor imap.inetd:Significa Internet Superserver Daemon.memchached:És un dimoni de memòria cau d'objectes distribuïts a la memòria.mysql:És un dimoni del servidor de bases de dades.muntar:És un dimoni de la muntanya.nfsd:Són les sigles de Network File Sharing Daemon.anomenat:És un dimoni del servidor DNS.nflock:S'aplica per iniciar i aturar els serveis de bloqueig dels fitxers nfs.ntpd:Significa dimoni de servei de protocol de temps de xarxa.nmbd:Significa Network Message Block Daemon.postgresql:És un dimoni del servidor de bases de dades.postfix:És un agent de transport de correu i s'utilitza com a substitució de Sendmail.rpcbind:Significa Remote Procedure Call Bind Daemon.encaminat:Gestiona taules d'encaminament.smbd:És un dimoni de Samba.Envia un correu:És un dimoni d'agent de transferència de correu.smtpd:Significa Simple Mail Transfer Protocol Daemon.calamar:És un dimoni del servidor intermediari de la memòria cau de pàgines web.snmpd:Significa Simple Network Management Protocol Daemon.sincronització:Pot mantenir sincronitzats diversos sistemes de fitxers juntament amb la memòria del sistema.sshd:És un dimoni Secure Shell Server.syslogd:Significa dimoni de registre del sistema.telnetd:És un dimoni del servidor Telnet.tcpd:Té un embolcall de serveis que pot restringir l'autorització als serveis basats en inetd des de hosts.deny i hosts.allow.vsftpd:Significa Very Secure FTP Daemon.webmin:És un dimoni del servidor d'administració basat en web.xntd:És un dimoni de servidor de temps de xarxa.xinetd:És un dimoni de superservidor d'Internet millorat.