Commande service Linux

Linux 命令大全Référence des commandes 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

service apache2 start
# Ou utilisez la commande systemctl équivalente
systemctl start apache2

Arrêter le service MySQL:

Exemple

service mysql stop
# Recommandé pour les systèmes modernes
systemctl stop mysql

Redémarrer le service Nginx:

Exemple

service nginx restart
# 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

service sshd status
# 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

service nginx reload
# À 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

service --status-all
# [+] 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

# Méthode à l'ancienne
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

# 1. Démarrer Apache
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

# 1. Arrêter MySQL pour maintenance
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èmessystemctlpour bénéficier de plus de fonctionnalités

Résolution des problèmes courants

Problème 1 : Le service ne démarre pas

Exemple

sudo service mysql start
# Sortie : Le job pour mysql.service a échoué car le processus de contrôle s'est terminé avec un code d'erreur.

Solution:

  1. Vérifiez les informations détaillées sur l'erreur :
    journalctl -xe
  2. Vérifiez les fichiers journaux :
    tail -n 50 /var/log/mysql/error.log
  3. 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:

  1. Confirmez s'il s'agit d'un environnement d'installation minimale
  2. Installez les paquets nécessaires :
    # Debian/Ubuntu
    sudo apt install sysvinit-utils
       
    # RHEL/CentOS
    sudo yum install initscripts

Recommandations de bonnes pratiques

  1. Utilisez le chemin complet: Il est recommandé de l'utiliser dans les environnements de production/usr/sbin/serviceplutôt que d'utiliser directementservice
  2. Combinez avec systemctl: Préférez l'utiliser sur les systèmes modernessystemctlcommand
  3. Ajouter sudo: La gestion des services nécessite généralement des privilèges root
  4. Vérification des journaux: Lorsqu'un service est anormal, vérifiez d'abord les journaux correspondants
  5. 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.

Linux 命令大全Référence des commandes Linux

Autres extensions