Une chose qui m'a toujours dérouté dans Ubuntu était la façon dont les services système sont démarrés. Je sais qu'Ubuntu utilise Upstart et prend en charge SysV, mais lequel est utilisé pour démarrer les services? Cela est important lorsque vous souhaitez un démarrage "manuel" pour un service.
Par exemple, sur mon système, j'ai des fichiers pour les services suivants dans /etc/init.d/<service>
(SysV) et /etc/init/<service>.conf
(Upstart):
acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin
Donc, si je veux désactiver l'exécution de MySQL au démarrage, dois-je utiliser la méthode Upstart ou SysV pour la désactiver? De plus, comment savoir lequel est vraiment utilisé pour démarrer un service générique?
Éditer
Le vrai doute ici n'est pas de savoir comment désactiver / activer les services à l'aide de SysV / Upstart. Ce qui me dérange vraiment, c'est que certains services semblent être définis (et activés) dans SysV et Upstart en même temps. Y a-t-il une priorité entre eux (comme si mysql
est activé dans les deux, lancez-le en utilisant SysV)? Ou peut-il être le cas qu'un outil utilise l'autre en arrière-plan?
Réponses:
En ce qui concerne les services définis dans SysV et upstart, généralement si vous le redémarrez via SysV, vous verrez quelque chose comme ceci:
Ce que je veux dire, c'est que Upstart est préféré pour ces services, et l'implémentation SysV n'est qu'un wrapper.
De plus, je pense que vous avez la signification des répertoires à l'envers. / etc / init est la configuration upstart, /etc/init.d est la compatibilité SysV, mais ce ne sont que des liens symboliques pour upstart pour ce type de services.
la source
Cela dépend largement de l'application et de son responsable de l'emballage.
Il y a une forte préférence pour les scripts Upstart car ils gèrent les événements (ce qui est généralement une bonne chose) mais beaucoup d'applications n'ont pas suffisamment de scripts Upstart disponibles ou le responsable de l'application a choisi de s'en tenir aux valeurs par défaut (application ou Debian) .
De toute façon, vous êtes dans la position où vous devez vous adapter.
.conf
, oumanual
au fichier. Cela vous permettra de charger manuellement le service.Pour les services plus anciens:
Si vous avez un
/etc/init.d/
script pour quelque chose et un/etc/init/
script et que vous voulez vérifier si la version init.d est toujours en ligne, vous pouvez vérifier avec:Si vous voyez une charge de liens symboliques, il est installé dans l'ancien init SysV.
la source
acpid
), je peux supposer qu'il est lancé par SysV? Ou si je veux le désactiver, je devrais le faire en utilisantupdate-rc.d
et l'astuce de renommage?