Je veux ajouter une iptables
règle permanente à ma nouvelle VPS
, et après une brève recherche sur Google, j'ai été surpris qu'il y ait deux endroits où cette règle peut être ajoutée, qui semble identique: /etc/rc.local
et /etc/init.d/rc.local
. Peut-être que quelqu'un sait pourquoi il y a deux endroits pour placer un code de démarrage simple? Est-il spécifique à la saveur Linux (mais Ubuntu a les deux!)? Ou l'un d'entre eux est obsolète?
configuration
startup
grigoryvp
la source
la source
/etc/rc.local
quelque temps.Réponses:
/etc/init.d
est maintenu sur ubuntu pour une compatibilité ascendante avec les choses sysvinit. Si vous regardez réellement,/etc/init.d/rc.local
vous verrez (également à partir d'un serveur 12.04 LTS):Et "Exécuter /etc/rc.local" est exactement ce qu'il fait. L'intégralité de
/etc/rc.local
est:J'imagine que le but en faisant cela est de fournir un endroit simple et mort pour mettre les commandes shell que vous voulez exécuter au démarrage, sans avoir à gérer le service stop | start, qui est dans
/etc/init.d/rc.local
.Il s'agit donc en fait d'un service, et peut être exécuté en tant que tel. J'ai ajouté une
echo
ligne à/etc/rc.local
et:Cependant, je ne pense pas qu'il soit référencé par quoi que ce soit dans le
/etc/init
répertoire upstart (pas init.d!):Il y a quelques services "rc" dans upstart:
Mais aucun de ceux-ci ne semble avoir quoi que ce soit à voir avec rc.local.
la source
Il s'agit plus d'une chose spécifique à la distribution. (comme, vous ne trouverez pas différents rc.local dans CentOS).
Venons-en maintenant à votre question réelle, je pense que l'ajout de quoi que ce soit dans /etc/init.d/rc.local permet de démarrer en tant que "service" alors que tout ce qui se trouve dans /etc/rc.local lancerait simplement ce script au démarrage.
Je ne sais pas vraiment pourquoi Ubuntu maintient toujours les deux? (Peut-être que quelqu'un d'autre pourrait faire la lumière sur cette partie !!)
la source
/etc/init.d/rc.local
l'arrêt s'arrête-t-il/etc/rc.local
(voir ma réponse pour plus de détails)./etc/rc.local
script est le processus exécutable régi par le/etc/initd/rc.local
script, tout comme (par exemple)/bin/syslog
serait le processus exécutable régi par/etc/initd/syslog
. Vous dites explicitement que ce/etc/rc.local
n'est qu'un script de démarrage, par opposition/etc/initd/rc.local
à un service de niveau d'exécution complètement distinct.