GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di Runit su Devuan

Devuan e varie distribuzioni Linux prive di sistema forniscono sistemi di inizializzazione alternativi. esegui è tra i più spogli e leggeri. Avere una piccola base di codice semplifica la manutenzione e anche il controllo di bug e problemi di sicurezza. È in grado di funzionare anche su altri Unice come *BSD, MacOSX, ecc. In questo articolo tratterò le basi di runit init con Devuan come base. Tuttavia, la maggior parte dei concetti e dei comandi dovrebbero essere gli stessi per le altre distribuzioni. Puoi fare riferimento ai riferimenti alla fine per apprendere in modo più dettagliato.

Meccanismo di lavoro

Secondo la documentazione ufficiale, runit è uno schema init con supervisione del servizio. Ciò significa che gestisce l'avvio automatico dei servizi durante l'avvio, nonché il monitoraggio e il riavvio. Conformemente alla filosofia UNIX, runit è costituito da vari piccoli strumenti e binari (anche se non al punto da essere gonfio *ahem* sistema *ahem* ) per interagire con esso e altri demoni.
Come con la maggior parte dei sistemi init, il kernel carica il primo processo:/sbin/init fornito dal programma runit-init(8). Quindi si sostituisce con runit(8). runit è ciò che esegue l'avvio, l'esecuzione e lo spegnimento del sistema e lo fa in tre fasi:

  • Fase 1 :
    Il sistema esegue le attività di inizializzazione una tantum tramite /etc/runit/1 . Otteniamo un guscio di emergenza se questa fase fallisce.
  • Fase 2 :
    runit avvia /etc/runit/2 che gestisce i runlevel tramite runvdir(8). Questa è la fase in cui si trova il nostro sistema quando è in esecuzione. In questa fase possiamo anche inviare la richiesta di riavvio Ctrl+Alt+Cancella.
  • Fase 3:
    Se /etc/runit/2 ritorna senza errori, che si verifica durante l'arresto o il riavvio del sistema, runit avvia /etc/runit/3 . Le attività di spegnimento vengono eseguite nella fase 3.

Livelli di corsa

Un'installazione standard di runit ha 2 runlevel , default e single . Una directory runlevel contiene collegamenti simbolici ad altre directory di servizio. La maggior parte delle attività viene eseguita e la maggior parte dei servizi viene avviata nel default livello di esecuzione. Ma possiamo creare i nostri runlevel creando una nuova cartella in/etc/runit/runsvdir/ e il collegamento simbolico dei nostri servizi desiderati a quel runlevel. La mia installazione di Devuan ha altri due runlevel creati.

Runit cambia i runlevel cambiando la directory in runsvdir il programma è in esecuzione. Questo è gestito da runsvchdir comando.

Ad esempio, per passare al single livello di esecuzione dell'utente:
# runsvchdir single

Possiamo anche chiedere a runit di avviarsi in un runlevel specifico durante l'avvio invece del default . Possiamo farlo aggiungendo il runitdir=name parametro del kernel. Ovviamente, il runlevel name dovrebbe esistere, ovvero una directory deve essere disponibile in /etc/runit/runsvdir con quel nome.

Ad esempio, per avviare direttamente la modalità utente singolo (ovvero il single runlevel), possiamo aggiungere runitdir=single al parametro del kernel.

In GRUB, possiamo farlo premendo il e mentre si evidenzia una voce nel menu del bootloader.

Premi Ctrl+X avvierà il sistema con i parametri forniti, portandoci effettivamente in modalità utente singolo.

Gestione dei servizi

Una directory di servizio contiene i file e gli script necessari per gestire il demone. Le directory di servizio si trovano in /etc/sv directory.

Queste directory di servizio devono essere collegate simbolicamente a /etc/service altrimenti runit non sarà in grado di accedervi.

Creazione del collegamento simbolico in /etc/service essenzialmente enable in modo che sia avviato all'avvio. Possiamo disable un servizio creando un file denominato down all'interno della directory del servizio.

Sebbene runit abbia diversi programmi, di solito abbiamo solo bisogno di interagire con sv comando. La sintassi è equivalente a systemd 's systemctl comando.

Avvio di un servizio:

# sv start <service_name>

Fermarlo:

# sv stop <service_name>

Riavvio o ricarica di un servizio:

# sv restart <service_name>

Verifica lo stato di un servizio:

# sv status <service_name>

C'è anche la riscrittura di sv comando in Rust chiamato rsv . Tuttavia, non lo tratterò in questo articolo. Si prega di controllare il link tra i riferimenti sottostanti.


Riferimenti:

  • Pagina iniziale dell'unità
  • risv
  • Artix Wiki | Esegui
  • Linux vuoto | Servizi e Demoni – runit

Linux
  1. Utilizzo di UFW come lista nera IP

  2. Utilizzo di mod_cluster in Apache

  3. Utilizzando Notifica-Invia con Cron?

  4. Quali server DNS sto usando?

  5. Git Completamento automatico?

301 Reindirizzamento utilizzando NGINX

Suggerimenti per l'utilizzo dello schermo

Utilizzo di Esporta in .bashrc?

Utilizzo del comando Watch in Linux

Utilizzo di nc per trasferire file di grandi dimensioni

Avvio di tmux tramite gnome-terminal