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.