Commande service Linux
Qu'est-ce que la commande service ?
serviceC'est un outil en ligne de commande sous Linux pour gérer les services système. Il fournit un moyen standardisé de démarrer, arrêter, redémarrer et vérifier l'état des services système.
Un service est une application ou un processus qui s'exécute en arrière-plan, fournissant généralement des fonctions système critiques (telles que la mise en réseau, la journalisation, la base de données, etc.). Comprendre la commande service est crucial pour l'administration d'un système Linux.
syntaxe de base de la commande service
service [服务名] [操作指令]
Instructions des opérations courantes
| Commande | Description |
|---|---|
| start | Démarrer le service spécifié |
| stop | Arrêter le service spécifié |
| restart | Redémarrer le service spécifié |
| reload | Recharger le fichier de configuration (sans redémarrer le service) |
| status | Afficher l'état d'exécution du service |
| --status-all | Lister l'état de tous les services |
Explication détaillée des paramètres courants
1. Opérations de base de gestion des services
Démarrer le service Apache:
Exemple
# Ou utilisez la commande systemctl équivalente
systemctl start apache2
Arrêter le service MySQL:
Exemple
# Recommandé pour les systèmes modernes
systemctl stop mysql
Redémarrer le service Nginx:
Exemple
# Après avoir modifié les fichiers de configuration, un redémarrage est généralement nécessaire pour que les modifications prennent effet
Vérifier l'état du service SSH:
Exemple
# Exemple de sortie :
# ● ssh.service - serveur OpenBSD Secure Shell
# Chargé : chargé (/lib/systemd/system/ssh.service; activé; préréglage du fournisseur : activé)
# Actif : actif (en cours d'exécution) depuis mar. 2023-05-16 10:23:45 CST ; il y a 3h 25min
2. Utilisation avancée
Recharger la configuration du service (sans interrompre le service):
Exemple
# À utiliser lorsque seul le fichier de configuration a été modifié et qu'un redémarrage complet n'est pas nécessaire
Lister l'état de tous les services:
Exemple
# [+] indique un service en cours d'exécution
# [-] indique un service arrêté
# [?] indique un service dont le statut est inconnu
Vérifier si le service est configuré pour démarrer au démarrage:
Exemple
chkconfig --list | grep httpd
# Les systèmes modernes utilisent
systemctl is-enabled apache2
Exemples d’application pratique
Exemple 1 : Gestion d'un serveur Web
Exemple
sudo service apache2 start
# 2. Après avoir modifié le fichier de configuration, rechargez
sudo nano /etc/apache2/apache2.conf
sudo service apache2 reload
# 3. Vérifier l'état d'exécution
service apache2 status
Exemple 2 : Maintenance du service de base de données
Exemple
sudo service mysql stop
# 2. Effectuer les opérations de maintenance...
# 3. Redémarrer MySQL
sudo service mysql start
# 4. Vérifier l'état du service
service mysql status
Différences entre les anciens et les nouveaux systèmes
À mesure que les systèmes Linux ont évolué, les méthodes de gestion des services ont changé :
| Fonctionnalité | Système traditionnel (SysVinit) | Système moderne (systemd) |
|---|---|---|
| Commande de gestion des services | service | systemctl |
| Emplacement du fichier de configuration | /etc/init.d/ | /lib/systemd/ |
| Gestion des journaux | Fichiers journaux dispersés | journalctl |
| Démarrage en parallèle | Non pris en charge | Pris en charge |
Notes de compatibilité:
- Dans les systèmes modernes,
servicela commande est généralementsystemctlun wrapper de compatibilité - Il est recommandé de l'utiliser sur les nouveaux systèmes
systemctlpour bénéficier de plus de fonctionnalités
Résolution des problèmes courants
Problème 1 : Le service ne démarre pas
Exemple
# Sortie : Le job pour mysql.service a échoué car le processus de contrôle s'est terminé avec un code d'erreur.
Solution:
- Vérifiez les informations détaillées sur l'erreur :
journalctl -xe
- Vérifiez les fichiers journaux :
tail -n 50 /var/log/mysql/error.log
- Causes courantes : conflit de port, problèmes de permissions, erreurs de fichier de configuration
Problème 2 : La commande service n'existe pas
service: command not found
Solution:
- Confirmez s'il s'agit d'un environnement d'installation minimale
- Installez les paquets nécessaires :
# Debian/Ubuntu sudo apt install sysvinit-utils # RHEL/CentOS sudo yum install initscripts
Recommandations de bonnes pratiques
- Utilisez le chemin complet: Il est recommandé de l'utiliser dans les environnements de production
/usr/sbin/serviceplutôt que d'utiliser directementservice - Combinez avec systemctl: Préférez l'utiliser sur les systèmes modernes
systemctlcommand - Ajouter sudo: La gestion des services nécessite généralement des privilèges root
- Vérification des journaux: Lorsqu'un service est anormal, vérifiez d'abord les journaux correspondants
- Gestion du démarrage automatique au boot:
# 启用开机启动 sudo systemctl enable nginx # 禁用开机启动 sudo systemctl disable nginx
Extension des connaissances
Comparaison des commandes associées
| Commande | Objectif | Exemple |
|---|---|---|
| service | Gestion des services de compatibilité | service sshd restart |
| systemctl | Gestion moderne des services (recommandée) | systemctl restart sshd |
| chkconfig | Gérer les niveaux d'exécution de SysVinit | chkconfig --list |
| update-rc.d | Gestion des niveaux d'exécution basée sur Debian (Debian) | update-rc.d apache2 defaults |
À travers cet article, vous devriez avoir maîtrisé l'utilisation essentielle de la commande service sous Linux. Rappelez-vous que bien que la commande service soit courante dans les anciens systèmes, dans les distributions Linux modernes utilisant systemd,systemctlest l'outil de gestion des services le plus recommandé. Il est recommandé de choisir la commande appropriée en fonction de l'environnement de votre système et de prendre l'habitude de consulter les journaux des services.
Référence des commandes Linux