Ubuntu utilise à la Upstart
place du init
système traditionnel . Upstart est plus fort que init, mais c'est un peu plus compliqué que init
.
Upstart, en revanche, est basé sur les événements. Un "événement" peut être quelque chose comme le "démarrage" ... ou il peut être beaucoup plus spécifique, comme "le réseau est prêt à être utilisé maintenant". Vous pouvez spécifier quels scripts dépendent de quels événements. Tout ce qui n'attend pas un événement peut être exécuté chaque fois que de la CPU est disponible.
Ce système basé sur les événements présente un autre avantage: vous pouvez en principe l’utiliser même après que le système est opérationnel. Upstart doit éventuellement prendre en charge des tâches telles que la connexion de périphériques externes tels que des clés USB (actuellement gérées par udev et hal), ou l'exécution de programmes à des heures spécifiques (gérées par le cron).
Comme vous devez le savoir maintenant, un démon mort (qui ne s'exécute pas au démarrage) peut être en vie et démarrer à cause d'un événement.
Ubuntu a à la fois / etc / init, pour Upstart, et /etc/init.d, pour les anciens fichiers SysV. Certains de ses fichiers sont des scripts SysV Init standard qui n’ont pas encore été migrés. Cependant, certains services ayant migré maintiennent un lien entre /etc/init.d et / lib / init / upstart-job. Si vous en utilisez un, cela fonctionne, mais il affiche d'abord un avertissement:
Plutôt que d’invoquer des scripts init via /etc/init.d, utilisez l’utilitaire service (8), par exemple service mysql restart
Puisque le script que vous essayez d'appeler a été converti en tâche Upstart, vous pouvez également utiliser l'utilitaire restart (8), par exemple, redémarrer mysql.
Sur une machine Upstart, init vient de Upstart. Au lieu d'exécuter un script maître rc appelant les scripts pour un niveau d'exécution spécifique, init d'Uststart extrait les travaux de son répertoire de travaux.
Nous savons maintenant qu'il n'existe pas de moyen simple de répertorier les démons à démarrage automatique. Vous devez répertorier tous les démons et les vérifier un par un. Le démon peut être démarré par init
ou par upstart
ou même par un événement ultérieur.
Le moyen le plus simple d’obtenir cette liste est d’exécuter cette commande dans le shell:
initctl show-config
La sortie ressemble à ceci:
...
hostname
start on startup
udevtrigger
start on ((startup and started udev) and not-container)
tty2
start on (runlevel [23] and ((not-container or container CONTAINER=lxc) or container CONTAINER=lxc-libvirt))
...
Certains éléments, comme le premier, sont si simples et hostname
démarrent au démarrage. Mais d'autres éléments peuvent sembler plus compliqués. (Mais heureusement lisible par l'homme :-))
chkconfig --list
va marcher?on
signifie que le service est exécuté sur ce niveau d'exécution et qu'il se lancera automatiquement au démarrage du système.