Gestion des services Debian/Ubuntu

De knowledge
Aller à la navigation Aller à la recherche

Avant les service c'était simple. Il y avait des fichiers dans /etc/init.d (en fait des liens mais on simplifie) et pour les lancer / arrêter / relancer etc...

# On prends l'exemple du service apache
sudo /etc/init.d/apapche2 start     # Démarrage du service
sudo /etc/init.d/apapche2 stop      # Arret du service
sudo /etc/init.d/apapche2 restart   # Redémmarrage 
sudo /etc/init.d/apapche2 reload    # Rechargement des paramètres sans arrêter/redémarrer (si la conf est fausse le systeme tourne encore avec l'ancienne)
sudo /etc/init.d/apapche2 status    # Pour avoir l'état du service

Maintenant on utilise la commande systemctl. Pour ceux qui sont habitués c'est bien ennuyeux pour les modernes c'est l'avenir.... La fonction est certes plus riche mais tout est a réapprendre! C'est ça l'informatique ça change!

La commande systemctl

Sans paramètres

admin@back01:~$ sudo  systemctl
  UNIT                                                 LOAD   ACTIVE SUB       >
  proc-sys-fs-binfmt_misc.automount                    loaded active waiting   >
  sys-devices-platform-serial8250-tty-ttyS0.device     loaded active plugged   >
  sys-devices-platform-serial8250-tty-ttyS1.device     loaded active plugged   >
  sys-devices-platform-serial8250-tty-ttyS2.device     loaded active plugged   >
  sys-devices-platform-serial8250-tty-ttyS3.device     loaded active plugged   >
  sys-devices-vbd\x2d268441856-block-xvdz-xvdz1.device loaded active plugged   >
  sys-devices-vbd\x2d268441856-block-xvdz-xvdz2.device loaded active plugged   >
  sys-devices-vbd\x2d268441856-block-xvdz.device       loaded active plugged   >
  sys-devices-vbd\x2d51712-block-xvda-xvda1.device     loaded active plugged   >
  sys-devices-vbd\x2d51712-block-xvda.device           loaded active plugged   >
  sys-devices-vif\x2d0-net-eth0.device                 loaded active plugged   >
  sys-devices-vif\x2d1-net-eth1.device                 loaded active plugged   >
  sys-devices-virtual-tty-hvc0.device                  loaded active plugged   >
  sys-devices-virtual-tty-hvc1.device                  loaded active plugged   >
  sys-devices-virtual-tty-hvc2.device                  loaded active plugged   >
  sys-devices-virtual-tty-hvc3.device                  loaded active plugged   >

Ca nous donne l'état de TOUS les services (121 sur mon mini serveur tout de même)! La colonne SUB donne l'état du service. Si on veut les services qui tournent "running":

sudo systemctl | grep running | wc -l # on compte les services "running"
49
sudo systemctl | grep running # la liste elle même 
  proc-sys-fs-binfmt_misc.automount                                                                     loaded active running   Arbitrary Executable File Formats File System Automount Point
  acpid.path                                                                                            loaded active running   ACPI Events Check                                   
  init.scope                                                                                            loaded active running   System and Service Manager                          
  session-329.scope                                                                                     loaded active running   Session 329 of user admin                           
  session-330.scope                                                                                     loaded active running   Session 330 of user admin                           
  session-332.scope                                                                                     loaded active running   Session 332 of user admin                           
  session-333.scope                                                                                     loaded active running   Session 333 of user admin                           
  accounts-daemon.service                                                                               loaded active running   Accounts Service                                    
  acpid.service                                                                                         loaded active running   ACPI event daemon                                   
  apache2.service                                                                                       loaded active running   The Apache HTTP Server

La liste est partielle j'ai pas mis les 49 lignes.

Arrêter et relancer un service

Pour arrêter un service

sudo systemctl stop apache2.service

Pour le démarrer

sudo systemctl start apache2.service

Pour le relancer (raccourci stop + start)

sudo systemctl reload apache2.service

Pour avoir les dernières logs

sudo systemctl status apache2.service

Apres la modification de la configuration, on peut demander le "rechargement" de cette dernière sans arrêter les services. Les avantages sont:

  • Le service est assuré sans discontinuité
  • Si la conf comporte une erreur (pour des conf subtiles comme apache qui n'en a jamais fait) l'erreur est affichée mais le service continue avec la conf inchangée.
sudo systemctl reload apache2.service

On remarque que le ".service" est facultatif on peut tout aussi bien entrer:

sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl reload apache2
sudo systemctl status apache2