Configurer le démarrage du système

Configurer le niveau de démarrage

  • Vérifiez (en utilisant pstree) que systemd est bien le premier processus pêre de nombreux autres.
  • Utilisez la commande runlevel pour connaitre le niveau de démarrage actuel. Utilisez maintenant la version systemd :
    systemctl get-default
    
  • Utilisez telinit pour changer de niveau, redémarrer et arrêter le système.
    telinit 0         # poweroff
    telinit 1         # single-user
    telinit 6         # reboot
    telinit 3         # multi-user
    telinit 5         # graphical
    
  • Modifiez le niveau de démarrage par défaut pour basculer en mode single-user.
    systemctl set-default rescue.target      # boot en single-user
    
  • Revenez ensuite en mode multi-user.
    systemctl set-default multi-user.target  # boot en mode texte
    
  • Vous pouvez également changer temporairement la cible par défaut en ajoutant le paramètre ci-dessous au noyau.
    systemd.unit=cible-choisie.target
    
    Utilisez cette possibilité avec la cible rescue.target.

Configurer les services

  • Vérifiez que le service sshd est actif :
    systemctl | fgrep sshd
    
    ou
    systemctl status sshd
    
  • Arrêtez le avec la commande ci-dessous et vérifiez son arrêt :
    systemctl stop sshd
    systemctl status sshd
    
  • Redémarrez le service sshd. Faites en sorte que ce service ne soit plus actif au démarrage (commande systemctl disable) et vérifiez le bon fonctionnement de votre configuration. Réactivez-le ensuite.
  • Étudiez la liste des services disponibles (répertoire /usr/lib/systemd/system ou la commande systemctl list-unit-files).

Créer un nouveau service

Nous allons créer une unité systemd pour le Tiny Server Web : thttpd compilé à l'étape précédente.

  • Commencez par créer le fichier /usr/lib/systemd/system/thttpd.service en vous inspirant du fichier ci-dessous
    [Unit]
    Description=Tiny/Turbo/Throttling Web Server
    After=network.target
    
    [Service]
    Type=forking
    #PIDFile=/var/run/thttpd.pid
    EnvironmentFile=-/etc/sysconfig/thttpd
    ExecStart=/usr/local/sbin/thttpd
    
    [Install]
    WantedBy=multi-user.target
    
    Aidez-vous de la page de manuel (systemd.service) pour activer l'option PIDFile et changez la ligne de démarrage (ExecStart) afin que le processus thttpd place son PID dans le bon fichier (regardez l'option -i du man thttpd).
  • vérifiez que vous pouvez lancer/arrêter le démon thttpd :
    systemctl start  thttpd
    systemctl status thttpd
    systemctl stop   thttpd
    
  • Faites en sorte que le service thttpd soit lancé au démarrage du système.
    systemctl enable thttpd
    
  • Vérifiez la chaîne de lancement de l'unité thttpd avec
    systemd-analyze critical-chain thttpd.service
    
  • Faites de même avec le niveau par défaut :
    systemd-analyze critical-chain