Comment utiliser / etc / rc.Local au démarrage

Comment utiliser / etc / rc.Local au démarrage
Le RC.local Le script dans certaines distributions Linux et Unix Systems est un script de démarrage SuperUser, généralement situé sous le répertoire / etc / etc / RC.d. Le nom de fichier RC fait référence au contrôle d'exécution.

RC.Local est un script obsolète conservé à des fins de compatibilité pour les systèmes SystemV.

C'était autrefois un fichier universel présent dans la plupart des distributions Linux en raison de sa simplicité pour les administrateurs Linux pour définir des scripts de démarrage ou des services supplémentaires pour commencer.
Le fichier rc.Local ne contient pas d'informations sur les composants de démarrage du système, mais uniquement les composants définis de superutilisateur / racine. Cependant, tous les programmes de démarrage racine ne sont pas décrits dans RC.local mais seulement ceux qui n'interfèrent pas avec les composants du système. Habituellement, RC.Local est exécuté après le démarrage des services normaux.

Les systèmes Linux plus récents, y compris Systemd, ont remplacé le RC.script local, mais il peut être restauré malgré Être une solution recommandée. Ce tutoriel montre comment restaurer et utiliser le RC.script local et utilisez RC-local par systemd sur les nouvelles distributions Linux.

Activation / etc / rc.Distributions locales dans Linux à l'aide de SystemD:

IMPORTANT: Il est important de se souvenir / etc / rc.Local est interrompu et remplacé. La méthode actuelle pour exécuter les scripts au démarrage est décrite après les instructions pour activer / etc / rc.local. Ce tutoriel est destiné aux utilisateurs ayant des besoins spécifiques.

Pour commencer, créez le fichier / etc / rc.local en utilisant l'éditeur que vous souhaitez et sudo (ou root):

nano / etc / rc.local

Collez le code ci-dessous dans le fichier et remplacez avec la commande que vous souhaitez exécuter au démarrage. N'utilisez pas sudo. Si une commande incluse dans ce script ne parvient pas à s'exécuter, le service qui appellera RC.local (RC-local.service) échouera.

#!/ bin / sh -e
#
# RC.local
#
# Ce script est exécuté à la fin de chaque niveau multiplié.
# Assurez-vous que le script "quittera 0" sur le succès ou tout autre
# Valeur sur l'erreur.
#
# Pour activer ou désactiver ce script, modifiez simplement l'exécution
# morceaux.
#
# Par défaut, ce script ne fait rien.

sortie 0

Dans mon exemple, j'utiliserai le RC.script local pour mettre à jour la base de données VULS SCAN VULS chaque fois que le système démarre. Vous pouvez écrire n'importe quel script que vous souhaitez exécuter au début, sauf pour les scripts de réseautage (tels que les iptables) qui peuvent interférer avec le processus de démarrage normal et avoir leurs propres scripts ou répertoires de démarrage.

Enregistrer le fichier (Ctrl + x et Y) et lui donner des autorisations d'exécution en exécutant la commande ci-dessous:

sudo chmod + x / etc / rc.local

Créer le fichier / etc / systemd / system / rc-local.service, courir:

nano / etc / systemd / système / rc-local.service

Collez les commandes suivantes et sortez de l'enregistrement en appuyant sur Ctrl + x et Y.

Execstart = / etc / rc.Démarrage local
Timeoutsec = 0
StandardOutput = tty
ResteafterExit = oui
SysvStartPriority = 99
[Installer]
Recherché = multi-utilisateurs.cible

Activer RC-local:

sudo systemctl activer rc-local

Maintenant vous pouvez démarrer le RC-local.Service, qui lira le / etc / rc.dossier local. Exécutez la commande illustrée ci-dessous:

SystemCTL Start RC-Local.service

Vous pouvez vérifier si RC-Local a été correctement chargé en exécutant ce qui suit:

SystemCTL Status RC-local.service

La bonne façon (systemd):

Le processus décrit ci-dessus est ancien, obsolète et peut écraser certains services.
Cette section montre le processus actuel pour démarrer les scripts ou les services au démarrage pour les distributions Linux à l'aide de SystemD.

SystemD est un gestionnaire de services qui affecte les groupes de contrôle des services (CGROUP) et suit les processus. SystemD est le processus (PID) 1 responsable du démarrage du système.

Pour ajouter des services ou des scripts au démarrage, vous devez créer un unité systemd.
Les unités SystemD incluent les services (.service), points de montage (.monter), dispositifs (.appareil) ou des prises (.prise). Contrairement à l'ancien processus décrit précédemment avec RC.local, au lieu de modifier le même fichier contenant des informations sur les scripts utilisateur, vous devez créer une unité de service Systemd pour chaque script que vous souhaitez exécuter au démarrage.

Les unités Systemd sont situées à / etc / systemd / système, Et c'est là que nous devons créer l'unité Systemd pour le script que nous voulons exécuter au démarrage.

L'image suivante montre le contenu de l'unité Ventre de l'équipe.service.

Où les directives [de l'unité]:

  • Description = Cette directive décrit l'unité; vous pouvez définir le nom de l'unité.
  • Exige = Ici, vous pouvez spécifier des dépendances pour empêcher les échecs de démarrage.
  • Veut = Comme le précédent, il maintient le service qui fonctionne même s'il ne trouve pas les dépendances définies.
  • Après = L'unité commencera après le spécifié dans cette directive.

Certaines directives utilisées dans la section [Service] peuvent être partagées avec [unité].

  • Type = Dans l'exemple indiqué ci-dessus, farding indique que le service sera tué, en gardant des processus d'enfants qui doivent se voir attribuer un PID.
  • Pidfile = La directive de FORKING nécessite la directive PidFile, qui doit contenir le chemin d'accès au PID de fichier du processus enfant pour que SystemD puisse l'identifier.
  • Execstart = Ici, vous spécifiez le chemin et les commandes que vous souhaitez exécuter. Ceci est similaire au RC.dossier local.
  • Redémarrer = Cette directive demande à Systemd quand redémarrer l'unité. Les options disponibles sont en fonction de l'on.
  • StartlimiTinterval = Cette directive indique que l'unité a 60 secondes pour 10 tentatives de redémarrage lors de l'échec.
  • Startlimitburst = Cette directive indique la limite des tentatives, dans l'exemple ci-dessus, 10 tentatives en 60 secondes.

La seule directive [d'installation] dans l'exemple ci-dessus est recherché par.

  • Recherché par Ici, vous pouvez spécifier cette unité comme dépendance; Il est similaire à la directive des désirs, mais définir l'unité actuelle est considérée comme une dépendance par une autre unité.

Note: Vous pouvez vérifier toutes les directives Systemd à
https: // www.Freedesktop.org / logiciel / systemd / man / systemd.directives.html

Ajout de votre propre unité Systemd:

Pour exécuter un script au démarrage, créez-le sous / etc / systemd / système avec son nom suivi d'un point et d'un service, par exemple, linuxhint. Service. Vous pouvez utiliser Nano comme dans l'échantillon suivant:

Collez ce qui suit, remplaçant <Nom ou description du script> avec une description de votre script et où / usr / sbin / linuxhint.shot Écrivez le chemin correct.

[Unité]
Description ==