GNU/Linux >> Linux Esercitazione >  >> Linux

Tutto sui demoni in Linux

Poiché il sistema operativo Linux è caratterizzato come un sistema operativo multitasking, un demone è, per definizione, un programma che viene eseguito continuamente come processo in background. In breve, l'esecuzione di questo processo non dipende dall'interazione del sistema di un utente attivo. Un normale utente di sistema non può controllare l'esecuzione periodica di un processo daemon.

La convenzione di denominazione che definisce la maggior parte dei processi daemon è il "suffisso" di una lettera d. Questa convenzione di denominazione consente di distinguere tra i normali processi di sistema e i processi basati su demone. Ad esempio, sshd è un processo demone responsabile della gestione dell'incoming SSH connessioni. Un altro esempio di processo demone è log di sistema . È responsabile della funzione di registrazione del sistema Linux.

In un ambiente Linux, l'avvio dei demoni avviene al momento dell'avvio. Poiché il sistema Linux è un clone Unix perfetto, un processo init si qualifica come processo padre di un demone. Per avviare e fermare i demoni sul tuo sistema operativo Linux, devi prima accedere al /etc/init.d directory degli script sul tuo sistema operativo.

Funzioni comuni dei demoni

  • Consente al tuo sistema di rispondere correttamente alle richieste di rete associando ciascuna richiesta a una porta di rete compatibile. Una tipica porta di rete gestita dai demoni è la porta 80.
  • I demoni consentono di eseguire o eseguire attività di sistema pianificate. Il demone responsabile di questo compito specifico si chiama cron . Creerà un processo cron che gestirà l'esecuzione periodica delle tue attività programmate.
  • I demoni offrono anche un contributo inestimabile nel monitoraggio delle prestazioni del tuo sistema. Ad esempio, possono controllare l'array RAID o lo stato del disco rigido.

Utili demoni del servizio Linux

  • e :Demone di montaggio automatico
  • anacron: Esecuzione all'avvio di attività cron ritardate
  • apmd: Demone di gestione dell'alimentazione avanzato
  • e: Utilizza la funzionalità dello strumento per eseguire lavori in coda
  • autof: lavora di pari passo con il demone automounter per facilitare il montaggio e lo smontaggio dei dispositivi di sistema su richiesta
  • crond: un demone che gestisce la pianificazione delle attività
  • tazze: un demone che gestisce la stampa CUPS
  • DHCP: demone sia per il server del protocollo Internet Bootstrap che per il protocollo di configurazione dell'host dinamico.
  • con cancello: demone di routing responsabile di più protocolli di routing. Sostituisce routed ed egpup
  • httpd: un demone che si occupa di server web come Apache
  • inetd: demone associato a Internet Superserver
  • imapd :demone per il server IMAP
  • lpd: Demone della stampante di linea
  • memcached: demone di memorizzazione nella cache degli oggetti distribuito in memoria
  • montato: montare il demone
  • MySQL: demone per il server di database MySQL
  • nome: demone per server DNS
  • nfsd: Demone di condivisione file di rete
  • nfslock: Poiché nfsd è associato ai servizi di blocco dei file, questo demone può avviare e arrestare questi servizi.
  • nmbd: demone per Blocco messaggi di rete
  • ntpd: demone per il servizio Network Time Protocol
  • postfisso: un demone che funge da agente di trasporto della posta. È un'alternativa a sendmail.
  • Postgresql: demone per il server di database Postgres
  • indirizzato: demone per la gestione delle tabelle di routing
  • rpcbind: demone associato a Remote Procedure Call Bind
  • invia email: un demone che funge da agente di trasferimento della posta
  • smbd: demone per il server Samba SMB
  • smtpd: demone per Simple Mail Transfer Protocol
  • snmpd: demone per Simple Network Management Protocol
  • calamari: demone associato a un server proxy per la memorizzazione nella cache delle pagine web
  • sshd: demone associato a Secure Shell Server
  • sincronizzazione: demone per sincronizzare la memoria di sistema con i file di sistema
  • Syslog: un demone che esegue la registrazione del sistema
  • tcpd: questo wrapper del servizio daemon esegue protocolli di restrizione dell'accesso relativi ai servizi daemon basati su inetd. Implementa queste restrizioni tramite hosts.allow e hosts.deny .
  • Telnet: demone per il server telnet
  • vsftpd: demone per un protocollo di trasferimento file molto sicuro
  • webmin: demone per il server di amministrazione basato sul Web
  • xinetd: demone associato a Enhanced Internet Supervisor
  • xntd :demone per Network Time Server

Che tu sia un utente principiante, intermedio o esperto nel mondo del sistema operativo Linux, non mancherai mai di familiarizzare con uno dei demoni sopra elencati mentre avanzi le tue abilità e competenze in questo ambiente OS.

Avvio/arresto/riavvio di demoni:l'approccio basato su terminale

Ora che hai un elenco di utili demoni Linux da memorizzare ed esplorare, la prima cosa che devi sapere è come avviare, fermare o riavviare questi demoni. Con il tuo terminale Linux avviato, considera le seguenti regole di sintassi per avviare, arrestare e riavviare un demone sul tuo sistema operativo Linux.

service preferred-daemon-name start

service preferred-daemon-name stop 

service preferred-daemon-name restart

Sostituisci il nome-daemon-preferito argomento di sintassi con il nome del demone di sistema Linux di tua scelta. Puoi sceglierne uno dall'elenco dei demoni evidenziato sopra purché sia ​​attivo o già definito sul tuo sistema Linux. Ad esempio, possiamo implementare l'uso pratico della sintassi precedente provando ad avviare, interrompere e riavviare un demone. Vai a /etc/init.d directory sul tuo terminale per l'elenco dei demoni disponibili sul tuo sistema Linux.

Elencare i demoni dei tuoi sistemi Linux

Un modo più efficace per annotare i demoni disponibili sul tuo sistema Linux invece di navigare nel /etc/init.d directory consiste nell'elencare tutti i daemon attivi e inattivi definiti da quella directory con un singolo comando. Il comando seguente è efficace per raggiungere questo obiettivo.

$ service –status-all

I segni positivi [+] e negativi [-] che precedono i nomi dei daemon elencati implicano che sono rispettivamente attivi o inattivi.

Lavorare con demoni definiti dall'utente

È necessario seguire regole o protocolli specifici per creare e implementare correttamente un demone definito dall'utente. Questi protocolli ti aiutano a comprendere completamente l'esecuzione di demoni su qualsiasi ambiente Linux. I demoni sono anche abbastanza flessibili da interfacciarsi con i moduli del kernel tramite chiamate di sistema. Questo tratto di funzionalità del demone supporta la sua interazione con dispositivi hardware come PDA (Personal Digital Assistant), stampanti e schede controller esterne valide. Gli elementi costitutivi dei demoni contribuiscono anche alla potenza e alla flessibilità caratteristiche del sistema operativo Linux.

Un'implementazione del demone riconoscibile che utilizza Python è accuratamente dimostrata e documentata da Sander Marechal. Sii attento a seguire l'ordine di esecuzione durante la creazione di questo demone. Prima di tutto, il tuo sistema Linux ha bisogno dell'installazione di pacchetti Python per sviluppare demoni con successo. Per installare Python, puoi usare il seguente comando.

$ sudo apt install python3-pip python3-dev

Il collegamento al codice del demone Python creato da Sander Marechal offre anche una versione del codice Python 3 raffinata. Sarebbe utile se pensassi di implementarlo per capire meglio come funzionano i demoni.

Se non sei sicuro di aver installato Python, esegui il seguente comando sul tuo terminale Linux.

$ python3 --version

Lo scopo di qualsiasi demone

Poiché un singolo demone è dedicato alla gestione di un compito specifico, dovrebbe eseguirlo alla perfezione. L'attività in questione può essere semplice come creare un report e inviarlo a un amministratore tramite sendmail o complessa come gestire più domini collegati a più caselle di posta. Ad un certo punto, il demone che creerai dovrà parlare con altri demoni esistenti.

Interazione tra utente e demone

È sconsigliato che l'utente del sistema e il demone creato comunichino direttamente. Se è necessario per il demone, viene creato per comunicare con un utente di sistema. Questa comunicazione può essere facilitata attraverso qualcosa come un'interfaccia GUI. Questa piattaforma di comunicazione può avere la complessità della GUI GTK+ o la semplicità del set di segnali.

Creazione del tuo demone

Numerosi approcci supportano la creazione di demoni. Ad esempio, puoi utilizzare la tua interfaccia a riga di comando per demonizzare uno script Python come segue:

$ python my_python_script.py &

Puoi salvare il codice del demone Python3 creato da Sander Marechal su un file Python e demonizzarlo con il comando sopra. Mentre il comando del terminale sopra creerà facilmente un demone per te, dovrai affrontare sfide come output di terminale imprevedibili. Queste sfide dipendono da quanto bene hai rifattorizzato il codice del tuo demone Python. Inoltre, l'approccio di cui sopra non supporta l'assegnazione di file di blocco PID a demoni specifici. Rende impossibile controllare qualsiasi demone poiché la maggior parte di essi verrà eseguita istantaneamente. D'altra parte, se hai solo bisogno di un semplice demone, l'approccio sopra menzionato ti darà i risultati desiderati.

Struttura di base del demone

Prima che un demone esegua o esegua una funzione prevista, dovrà considerare alcune regole preconcette che portano alla sua esecuzione. Puoi pensare a queste regole come a lavori domestici di basso livello che portano al suo vero compito. Queste regole possono essere suddivise nei seguenti passaggi.

  • La creazione di un fork da un processo padre avviene prima
  • Segue la modifica di umask (maschera modalità file)
  • I registri vengono aperti per la scrittura
  • Viene creato un SID (ID sessione) univoco
  • L'esecuzione passa dalla directory di lavoro corrente a una posizione secondaria per preservare l'integrità del file
  • I descrittori di file standard sono chiusi
  • Esecuzione del codice del demone mirato

Ulteriori informazioni sulle implementazioni di esempio dei demoni possono essere trovate su GitHub.


Linux
  1. Requisiti di sistema di Kali Linux

  2. Comando di spegnimento di Linux

  3. Comando Fsck in Linux

  4. Scopri di più sul tuo sistema Linux con inxi

  5. Linux:tutto è un file?

Tutto ciò che devi sapere sul sistema operativo Linux Zorin

Tutto ciò che devi sapere sul sistema operativo Peppermint Linux

FreeBSD vs Linux:20 cose da sapere su entrambi i sistemi

Tutto quello che devi sapere su Black Lab Linux

Tutto ciò che devi sapere su Linux Mint Distro

Tutto ciò che devi sapere sugli inode in Linux