Je viens de provisionner un nouveau VPS exécutant CentOS 6, et il est livré avec Apache.
Je veux désactiver Apache, car j'utiliserai Nginx à la place.
Je sais que je peux simplement supprimer le script dans /etc/init.d/, mais je ne veux pas le faire, car c'est une chose courante fournie avec le système. Je préfère avoir une manière gracieuse de désactiver le service.
J'ai pensé que je pourrais mettre quelque chose dans / etc / inittab, mais inittab contient:
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
Cela m'amène à croire que le système est en cours d'exécution. Eh bien, j'ai regardé, et la bonne façon de désactiver un service dans upstart est d'ajouter un fichier de remplacement. Je lance donc:
% 'manual' > /etc/init/httpd.override
Et redémarrez mon serveur. Mais httpd fonctionne toujours! Confus par cela, je décide de vérifier que upstart est le service init, en exécutant
% readlink /proc/1/exe
/sbin/init
Eh bien, ce n'est pas ce à quoi je m'attendais. Peut-être que je ne suis pas parvenu par la suite. Existe-t-il un moyen précis de vérifier? Et si j'utilise init, quelle est la méthode recommandée pour désactiver définitivement un service? Je suis nouveau dans tout cela et il semble y avoir de nombreuses opinions contradictoires.
Merci à tous pour votre aide.
Réponses:
La façon dont vous désactivez un service sous à peu près n'importe quelle distribution dérivée de RedHat est avec la
chkconfig
commande:Et pour arrêter un service en cours d'exécution:
Ces commandes faire la bonne chose indépendamment du fait que votre système est en cours d' exécution
systemd
,upstart
ou la vanilleSysVInit
.Pour ce que cela vaut, malgré l'exécution de la
upstart
plupart des services dans CentOS 6, utilisez en fait desinit.d
scripts hérités , situés dans/etc/rc.d/rc<RUNLEVEL>.d
. Pour ces services,chkconfig
gère les liens symboliques dans/etc/rc.d/init.d
.la source
Désactivez le service que vous ne souhaitez pas démarrer lors du démarrage du système à l'aide de chkconfig .
Liste des services disponibles avec leurs états
chkconfig --list
Désactiver le service htttpd au niveau d'exécution 2345
chkconfig --level 2345 httpd off
la source