Il est de bonne pratique de ne démarrer sur un serveur que les services utiles et rien de plus. Lors d'une installation minimale de CentOS 7 certains services sont toutefois démarrés sans utilité. Ce billet présente comment ne démarer que 3 choses :

  • Réseau
  • SSH
  • Rsyslog

La gestion des service en CentOS 7 utilise SystemD via la commande systemctl. La commande suivante permet de lister l'ensemble des services activé ( enabled ) au boot. L'option --no-pager permet d'éviter la pause entre chaque page.

systemctl list-unit-files --no-pager | grep enabled

En utilsant un simple boucle for, il est possible de tout désactiver.

for i in $(systemctl list-unit-files --no-pager | grep enabled | cut -d'.' -f1); do systemctl disable $i;done

Activer ensuite ssh et rsyslog

systemctl enable sshd
systemctl enable rsyslog

Dernier point héritage de la version 6 il reste ne service netconsole qui est activé classiquement, le désactiver ainsi :

chkconfig --del netconsole

Une fois le système redémarré, il ne reste plus que le strict minimum, soit de quoi se connecter en ssh. Ci-dessous le résultat de la commande pstree

[root@centos7 ~]# pstree -p
systemd(1)─┬─agetty(481)
           ├─dbus-daemon(463)───{dbus-daemon}(465)
           ├─rsyslogd(469)─┬─{rsyslogd}(484)
           │               └─{rsyslogd}(485)
           ├─sshd(669)───sshd(674)───bash(678)───pstree(697)
           ├─systemd-journal(343)
           ├─systemd-logind(461)
           └─systemd-udevd(361)
[root@centos7 ~]# 

Il faut installer le package psmisc ( yum install psmisc ) pour avoir la commande pstree.