GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser Runit sur Devuan

Devuan et diverses distributions Linux sans systemd fournissent des systèmes d'initialisation alternatifs. exécuter est parmi les plus barebones et les plus légers. Le fait d'avoir une petite base de code facilite la maintenance et l'audit des bogues et des problèmes de sécurité. Il est également capable de fonctionner sur d'autres Unices comme *BSD, MacOSX, etc. Dans cet article, je vais couvrir les bases du runit schéma d'initialisation avec Devuan comme base. Cependant, la plupart des concepts et des commandes devraient être les mêmes pour les autres distributions. Vous pouvez vous référer aux références à la fin pour apprendre plus en détail.

Mécanisme de travail

Selon la documentation officielle, runit est un schéma d'initialisation avec supervision de service. Cela signifie qu'il gère le démarrage automatique des services lors du démarrage, ainsi que leur surveillance et leur redémarrage. Conformément à la philosophie UNIX, runit se compose de divers petits outils et binaires (mais pas au point d'être gonflés *ahem* systemd *hum* ) pour interagir avec lui et d'autres démons.
Comme avec la plupart des systèmes init, le noyau charge le premier processus - /sbin/init qui est fourni par le programme runit-init(8). Il se remplace ensuite par runit(8). runit est ce qui effectue le démarrage, l'exécution et l'arrêt du système et il le fait en trois étapes :

  • Étape 1 :
    Le système exécute les tâches d'initialisation uniques via /etc/runit/1 . Nous obtenons un shell d'urgence si cette étape échoue.
  • Étape 2 :
    runit démarre /etc/runit/2 qui gère les niveaux d'exécution via runsvdir(8). C'est l'étape dans laquelle notre système reste lorsqu'il est en cours d'exécution. Nous pouvons également donner la demande de redémarrage Ctrl + Alt + Suppr à ce stade.
  • Étape 3 :
    Si /etc/runit/2 renvoie sans erreur, ce qui se produit lors de l'arrêt ou du redémarrage du système, runit démarre /etc/runit/3 . Les tâches d'arrêt sont effectuées à l'étape 3.

Niveaux d'exécution

Une installation standard de runit a 2 niveaux d'exécution , default et single . Un répertoire de niveau d'exécution contient des liens symboliques vers d'autres répertoires de service. La plupart des tâches sont effectuées et la plupart des services sont démarrés dans le default niveau d'exécution. Mais nous pouvons créer nos propres niveaux d'exécution en créant un nouveau dossier dans /etc/runit/runsvdir/ et créer un lien symbolique entre nos services souhaités et ce niveau d'exécution. Mon installation Devuan a créé deux autres niveaux d'exécution.

Runit change les niveaux d'exécution en changeant de répertoire le runsvdir programme est en cours d'exécution. Ceci est géré par le runsvchdir commande.

Par exemple, pour passer au single niveau d'exécution utilisateur :
# runsvchdir single

Nous pouvons également demander à runit de démarrer dans un niveau d'exécution spécifique lors du démarrage au lieu du default . Nous pouvons le faire en ajoutant le runitdir=name paramètre du noyau. Évidemment, le niveau d'exécution name doit exister, c'est-à-dire qu'un répertoire doit être disponible dans /etc/runit/runsvdir avec ce nom.

Par exemple, pour démarrer directement en mode mono-utilisateur (c'est-à-dire le mode single runlevel), nous pouvons ajouter runitdir=single au paramètre du noyau.

Dans GRUB, nous pouvons le faire en appuyant sur le e clé tout en mettant en surbrillance une entrée dans le menu du chargeur de démarrage.

Appuyez sur Ctrl+X fera démarrer le système avec les paramètres donnés, nous mettant ainsi en mode mono-utilisateur.

Gestion des services

Un répertoire de service contient les fichiers et les scripts nécessaires pour gérer le démon. Les répertoires de service sont situés dans le /etc/sv annuaire.

Ces répertoires de service doivent être liés symboliquement à /etc/service sinon runit ne pourra pas y accéder.

Création du lien symbolique dans /etc/service va essentiellement enable pour qu'il démarre au démarrage. Nous pouvons disable un service en créant un fichier nommé down dans le répertoire de service.

Bien que runit ait plusieurs programmes, nous n'avons généralement besoin d'interagir qu'avec le sv commande. La syntaxe est équivalente à systemd systemctl commande.

Démarrage d'un service :

# sv start <service_name>

L'arrêter :

# sv stop <service_name>

Redémarrer ou recharger un service :

# sv restart <service_name>

Vérifier l'état d'un service :

# sv status <service_name>

Il y a aussi la réécriture du sv commande dans Rust appelée rsv . Cependant, je ne vais pas le couvrir dans cet article. Veuillez vérifier le lien parmi les références ci-dessous.


Références :

  • Page d'accueil Runit
  • rsv
  • ArtixWiki | Exécuter
  • Vide Linux | Services et démons – runit

Linux
  1. Auto-complétion Git ?

  2. Utiliser rsync pour synchroniser les fichiers

  3. Utilisation des journaux du serveur

  4. Utilisation de nc pour transférer un fichier volumineux

  5. Lancer tmux à l'aide de gnome-terminal

Déboguer Linux avec ProcDump

Redirection 301 avec NGINX

Conseils d'utilisation de l'écran

Utilisation de la commande Watch sous Linux

Utiliser grep pour rechercher en sens inverse

Utiliser sftp comme scp