15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
24.10.2024

Redémarrage des services depuis la ligne de commande sous Linux : Guide complet de l’administrateur

Gérer efficacement les services Linux est l’une des compétences les plus fondamentales que tout administrateur système doit maîtriser. Que vous appliquiez des modifications de configuration, que vous récupériez d’un crash inattendu, que vous déboguiez un démon défaillant, ou que vous actualisiez simplement un processus en cours d’exécution, savoir comment redémarrer les services depuis la ligne de commande est essentiel pour maintenir votre infrastructure en bonne santé et réactive.

Ce guide complet vous présente toutes les méthodes principales pour redémarrer les services Linux — couvrant systemd, SysVinit et Upstart — ainsi que des exemples pratiques, des techniques de vérification d’état, des conseils d’analyse des journaux et les meilleures pratiques sur lesquelles les administrateurs expérimentés s’appuient au quotidien.

Comprendre les services Linux et les gestionnaires de services

Sous Linux, un service (également appelé démon) est un processus en arrière-plan qui remplit une fonction spécifique et continue. Voici quelques exemples courants :

  • Apache / Nginx — démons de serveur web
  • MySQL / PostgreSQL — démons de serveur de base de données
  • SSH (sshd) — démon d’accès shell sécurisé
  • Cron — démon de tâches planifiées
  • Postfix / Dovecot — démons de serveur de messagerie

Ces services sont contrôlés par un système init ou un gestionnaire de services, qui est responsable de leur démarrage, arrêt, redémarrage et surveillance. Les trois gestionnaires de services les plus courants que vous rencontrerez sous Linux sont :

Gestionnaire de servicesUtilisé dans
systemdUbuntu 15.04+, Debian 8+, CentOS 7+, RHEL 7+, Fedora, AlmaLinux, Rocky Linux
SysVinitAncien Debian, ancien Ubuntu (avant 15.04), RHEL/CentOS 6 hérité
UpstartUbuntu 9.10 à 14.10

La grande majorité des serveurs Linux modernes — y compris ceux fonctionnant sur l’Hébergement VPS ou les Serveurs Dédiés — utilisent systemd comme gestionnaire de services par défaut. Cependant, comprendre les trois systèmes vous assure d’être prêt pour tout environnement que vous pourriez rencontrer.

Méthode 1 : Redémarrer les services avec systemd (Linux moderne)

systemd est le système init dominant sur pratiquement toutes les distributions Linux modernes. Il gère les services via l’utilitaire en ligne de commande systemctl, qui fournit une interface cohérente et puissante pour la gestion des services.

Étape 1 : Ouvrir un terminal

Accédez à l’interface en ligne de commande de votre serveur — directement, via SSH, ou via votre panneau de contrôle d’hébergement.

Étape 2 : Redémarrer un service

La syntaxe de base pour redémarrer un service avec systemd est :

sudo systemctl restart <service-name>

Exemples courants dans la pratique :

# Restart the Apache web server
sudo systemctl restart apache2

# Restart Nginx
sudo systemctl restart nginx

# Restart MySQL / MariaDB
sudo systemctl restart mysql

# Restart the SSH daemon
sudo systemctl restart sshd

# Restart the Cron scheduler
sudo systemctl restart cron

# Restart Postfix mail server
sudo systemctl restart postfix

> Remarque : Sur certaines distributions, le nom du service peut légèrement différer. Par exemple, Apache peut s’appeler apache2 sur les systèmes Debian/Ubuntu mais httpd sur les systèmes CentOS/RHEL/AlmaLinux.

Étape 3 : Vérifier que le service a redémarré avec succès

Après avoir émis une commande de redémarrage, confirmez toujours que le service est revenu proprement :

sudo systemctl status <service-name>

Exemple de sortie pour un service Apache en bonne santé :

sudo systemctl status apache2

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2025-01-13 10:45:22 UTC; 3s ago
    Process: 12345 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 12346 (apache2)

Les indicateurs clés à rechercher :

  • Active: active (running) — le service fonctionne normalement
  • Active: failed — le service n’a pas réussi à démarrer ; vérifiez les journaux immédiatement
  • Loaded: enabled — le service est configuré pour démarrer automatiquement au démarrage

Commandes systemd supplémentaires utiles

Au-delà d’un simple redémarrage, systemd fournit plusieurs commandes connexes que les administrateurs utilisent régulièrement :

# Stop a service completely
sudo systemctl stop <service-name>

# Start a stopped service
sudo systemctl start <service-name>

# Reload configuration without a full restart (if supported)
sudo systemctl reload <service-name>

# Reload config or restart if reload isn't supported
sudo systemctl reload-or-restart <service-name>

# Enable a service to start automatically at boot
sudo systemctl enable <service-name>

# Disable a service from starting at boot
sudo systemctl disable <service-name>

# Check if a service is currently active
sudo systemctl is-active <service-name>

# Check if a service is enabled at boot
sudo systemctl is-enabled <service-name>

Consulter les journaux de service en temps réel avec journalctl

systemd s’intègre avec le système de journalisation journal. Pour consulter les journaux d’un service spécifique :

# View all logs for a service
sudo journalctl -u apache2

# Follow logs in real time (like tail -f)
sudo journalctl -u apache2 -f

# View only the most recent 50 lines
sudo journalctl -u apache2 -n 50

# View logs since the last boot
sudo journalctl -u apache2 -b

C’est indispensable lorsqu’un service échoue à redémarrer et que vous devez diagnostiquer rapidement la cause principale.

Méthode 2 : Redémarrer les services avec SysVinit (Linux hérité)

SysVinit est un ancien système init encore présent sur les serveurs hérités, les systèmes embarqués et les anciennes distributions Linux. Si vous maintenez un environnement serveur plus ancien, vous utiliserez la commande service pour gérer les démons.

Étape 1 : Ouvrir un terminal

Connectez-vous à votre serveur via SSH ou un accès console direct.

Étape 2 : Redémarrer un service

sudo service <service-name> restart

Exemples courants :

# Restart MySQL
sudo service mysql restart

# Restart Apache
sudo service apache2 restart

# Restart Nginx
sudo service nginx restart

# Restart the SSH daemon
sudo service ssh restart

# Restart Postfix
sudo service postfix restart

Étape 3 : Vérifier l’état du service

sudo service <service-name> status

Exemple :

sudo service mysql status

● mysql.service - MySQL Community Server
   Active: active (running) since Mon 2025-01-13 10:47:00 UTC; 5s ago

Autres commandes de service SysVinit

# Stop a service
sudo service <service-name> stop

# Start a service
sudo service <service-name> start

# Reload configuration
sudo service <service-name> reload

Vous pouvez également interagir avec les services SysVinit directement en utilisant les scripts init situés dans /etc/init.d/ :

sudo /etc/init.d/apache2 restart
sudo /etc/init.d/mysql status

> Note de compatibilité : Sur les distributions modernes basées sur systemd, la commande service fonctionne toujours comme un wrapper de compatibilité — elle traduit automatiquement les commandes service en appels systemctl en arrière-plan. Cela signifie que vous pouvez utiliser les commandes service en toute sécurité sur les systèmes modernes, bien que systemctl soit préféré pour ses fonctionnalités supplémentaires.

Méthode 3 : Redémarrer les services avec Upstart (Ubuntu hérité)

Upstart était le système init d’Ubuntu de la version 9.10 à 14.10, avant que systemd ne le remplace dans Ubuntu 15.04. Si vous maintenez un très ancien serveur Ubuntu, vous utiliserez la commande initctl.

Étape 1 : Ouvrir un terminal

Étape 2 : Redémarrer un service

sudo initctl restart <service-name>

Exemples :

# Restart lighttpd
sudo initctl restart lighttpd

# Restart MySQL
sudo initctl restart mysql

Étape 3 : Vérifier l’état du service

sudo initctl status <service-name>

Exemple :

sudo initctl status lighttpd

lighttpd start/running, process 4521

Autres commandes Upstart

# Stop a service
sudo initctl stop <service-name>

# Start a service
sudo initctl start <service-name>

# List all Upstart-managed jobs and their states
sudo initctl list

Comment identifier quel gestionnaire de services votre système utilise

Si vous vous connectez à un serveur inconnu et n’êtes pas sûr du système init utilisé, exécutez ces commandes de diagnostic rapides :

# Check if systemd is running as PID 1
ps -p 1 -o comm=

# Or check the init system directly
cat /proc/1/comm

# Check systemd version (if installed)
systemctl --version

# Check if Upstart is present
initctl --version

# Check for SysVinit scripts
ls /etc/init.d/

Si ps -p 1 -o comm= retourne systemd, vous êtes sur un système systemd. S’il retourne init, vous êtes probablement sur SysVinit ou Upstart.

Meilleures pratiques pour redémarrer les services Linux

Les administrateurs expérimentés suivent un ensemble de meilleures pratiques pour minimiser les temps d’arrêt et éviter les erreurs de configuration lors du redémarrage des services :

1. Toujours valider la configuration avant de redémarrer

De nombreux services fournissent une vérification syntaxique intégrée. Utilisez-la avant de redémarrer pour éviter d’arrêter un service avec une configuration défectueuse :

# Test Apache configuration
sudo apachectl configtest
# or
sudo apache2ctl -t

# Test Nginx configuration
sudo nginx -t

# Test SSH daemon configuration
sudo sshd -t

# Test MySQL configuration
sudo mysqld --validate-config

Si le test de configuration réussit, procédez au redémarrage. S’il échoue, corrigez d’abord les erreurs.

2. Utiliser reload plutôt que restart lorsque c’est possible

Un rechargement applique les modifications de configuration sans interrompre les connexions actives, ce qui le rend bien moins perturbateur qu’un redémarrage complet :

# Gracefully reload Apache (zero downtime)
sudo systemctl reload apache2

# Gracefully reload Nginx
sudo systemctl reload nginx

N’utilisez restart que lorsqu’un redémarrage complet du processus est réellement nécessaire (par exemple, après une mise à jour logicielle ou lorsque le rechargement n’est pas pris en charge).

3. Vérifier les journaux immédiatement après un redémarrage échoué

Si un service ne revient pas en ligne, consultez les journaux sans délai :

# systemd journal (most detailed)
sudo journalctl -u <service-name> -n 100 --no-pager

# Application-specific log files
sudo tail -n 50 /var/log/apache2/error.log
sudo tail -n 50 /var/log/nginx/error.log
sudo tail -n 50 /var/log/mysql/error.log
sudo tail -n 50 /var/log/syslog

4. Être prudent lors du redémarrage de SSH sur des serveurs distants

Si vous êtes connecté à un serveur distant via SSH et que vous redémarrez le démon SSH, vous risquez de perdre votre connexion. Atténuez ce risque :

# Safer: reload SSH config without dropping connections
sudo systemctl reload sshd

# If you must restart, use a delayed command to give yourself time to reconnect
sudo shutdown -r +1  # schedules a reboot in 1 minute (use only if necessary)

5. Comprendre l’impact sur les processus en cours d’exécution

Le redémarrage d’un service de base de données comme MySQL ou PostgreSQL mettra fin à toutes les connexions de base de données actives. Informez toujours les équipes applicatives ou planifiez des fenêtres de maintenance pour les systèmes de production avant de redémarrer des services critiques.

6. S’assurer que les services sont activés pour redémarrer après un redémarrage système

Après avoir redémarré un service manuellement, vérifiez qu’il est configuré pour démarrer automatiquement après un redémarrage du système :

sudo systemctl enable <service-name>

Référence rapide : Aide-mémoire des commandes de gestion des services

ActionsystemdSysVinitUpstart
Redémarrersystemctl restart <svc>service <svc> restartinitctl restart <svc>
Démarrersystemctl start <svc>service <svc> startinitctl start <svc>
Arrêtersystemctl stop <svc>service <svc> stopinitctl stop <svc>
Rechargersystemctl reload <svc>service <svc> reloadinitctl reload <svc>
Étatsystemctl status <svc>service <svc> statusinitctl status <svc>
Activer au démarragesystemctl enable <svc>update-rc.d <svc> enableN/A
Consulter les journauxjournalctl -u <svc>/var/log/syslog/var/log/upstart/<svc>.log

Résolution des problèmes courants de redémarrage de services

Le service échoue à démarrer après le redémarrage

Symptômes : systemctl status affiche Active: failed

Étapes de diagnostic :

# Get detailed failure reason
sudo systemctl status <service-name>
sudo journalctl -u <service-name> -n 50

# Check for port conflicts
sudo ss -tlnp | grep <port-number>
sudo netstat -tlnp | grep <port-number>

# Check file permissions on config files
ls -la /etc/<service-config-file>

Le service redémarre mais n’applique pas la nouvelle configuration

Cause : Le fichier de configuration contient une erreur de syntaxe, ou le mauvais fichier de configuration est chargé.

Solution :

# Verify which config file the service is using
sudo <service-name> -V  # (works for Apache, Nginx, etc.)

# Re-validate config syntax
sudo nginx -t
sudo apachectl configtest

« Permission refusée » lors de l’exécution des commandes de service

Cause : Privilèges insuffisants.

Solution : Utilisez toujours sudo ou passez à l’utilisateur root :

sudo systemctl restart <service-name>
# or
su -c "systemctl restart <service-name>"

systemd signale « Unit Not Found »

Cause : Le nom du service est incorrect ou le service n’est pas installé.

Solution :

# Search for the correct service name
sudo systemctl list-units --type=service | grep <partial-name>

# Or list all available unit files
sudo systemctl list-unit-files | grep <partial-name>

Gestion des services sur l’infrastructure AlexHost

Si vous exécutez des services sur l’infrastructure AlexHost, les commandes de gestion des services couvertes dans ce guide s’appliquent directement à votre environnement. Les offres d’Hébergement VPS d’AlexHost fonctionnent sur des distributions Linux modernes avec une prise en charge complète de systemd, vous donnant un contrôle total sur votre pile de services via SSH.

Pour les administrateurs qui préfèrent une interface graphique pour la gestion des services, AlexHost propose des VPS avec cPanel et une gamme de Panneaux de contrôle VPS qui offrent une gestion des services par interface graphique ainsi qu’un accès complet en ligne de commande.

Si votre charge de travail nécessite des performances maximales et des ressources dédiées — par exemple, pour faire fonctionner des serveurs web à fort trafic, des clusters de bases de données ou des serveurs de messagerie — envisagez les Serveurs Dédiés d’AlexHost, qui vous donnent un accès root complet et un contrôle total sur la configuration de vos services.

Pour les équipes qui exécutent des applications web et ont également besoin d’une infrastructure de messagerie fiable, l’Hébergement Email d’AlexHost fournit une solution gérée qui élimine la complexité de la configuration et de la maintenance des démons de serveur de messagerie comme Postfix et Dovecot.

Et si vous hébergez des sites web qui traitent des données utilisateur sensibles, associer votre hébergement à un Certificat SSL garantit des connexions chiffrées — et n’oubliez pas qu’après l’installation ou le renouvellement d’un certificat SSL, vous devrez redémarrer votre démon de serveur web (Apache ou Nginx) pour que les modifications prennent effet.

Conclusion

Redémarrer les services Linux depuis la ligne de commande est une compétence fondamentale que tout administrateur système — du débutant à l’expert — doit avoir dans sa boîte à outils. Les commandes spécifiques varient selon votre système init :

  • systemd (Linux moderne) : sudo systemctl restart <service-name>
  • SysVinit (Linux hérité) : sudo service <service-name> restart
  • Upstart (ancien Ubuntu) : sudo initctl restart <service-name>

Mais au-delà de la connaissance des commandes, une gestion efficace des services signifie comprendre quand utiliser reload plutôt que restart, comment valider la configuration avant d’appliquer les modifications, comment lire les journaux en cas de problème, et comment s’assurer que les services survivent aux redémarrages du système.

Maîtrisez ces techniques et vous serez équipé pour maintenir vos serveurs Linux en bon état de fonctionnement, minimiser les temps d’arrêt et résoudre les problèmes de service rapidement et avec confiance — que vous gériez un seul VPS ou une flotte de serveurs dédiés.

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer