GNU/Linux >> Tutoriels Linux >  >> Linux

Ubuntu - Démarrer, arrêter, redémarrer les services

Lorsqu'une application s'exécute en arrière-plan, on l'appelle un service. Ceux-ci sont essentiels pour faire fonctionner le système ou nos applications logicielles. Certains des services communs que vous trouverez sur la plupart des serveurs sont Apache, MySQL, NGINX, etc. Lorsque le système démarre, ces services sont configurés pour démarrer automatiquement.

J'utilise Ubuntu pour héberger mes sites Web. J'utilise également MySQL pour stocker toutes les données de mes sites Web. Parfois, j'effectue des mises à jour régulières et il est indispensable de redémarrer ces services. Dans ce didacticiel, nous allons apprendre différentes manières de démarrer, d'arrêter et de redémarrer des services dans Ubuntu.

Différentes façons de démarrer, d'arrêter et de redémarrer les services sur Ubuntu

  1. commande systemctl
  2. commande de service
  3. scripts d'initialisation

Utiliser systemctl pour démarrer, arrêter et redémarrer les services Ubuntu

C'est la meilleure façon de gérer les services Ubuntu. Si vous n'êtes pas sûr du nom du service, vous pouvez exécuter systemctl --all commande pour lister tous les services. Mais, il peut y avoir des centaines de services en cours d'exécution, il est donc préférable de filtrer la liste en utilisant le grep commande.

Essayons de trouver les noms de service de MySQL et du serveur HTTP Apache.

# systemctl --all | grep -i mysql
  mysql.service                                                                          loaded    active   running   MySQL Community Server                                                       
# systemctl --all | grep -i apache
  apache2.service                                                                        loaded    active   running   The Apache HTTP Server                                                       
# 

Ainsi, le nom du service MySQL est "mysql.service" et le nom du service du serveur HTTP Apache est "apache2.service".

Apprenons à gérer ces services à l'aide de la commande systemctl.

1. Arrêter le service en utilisant systemctl

# systemctl stop mysql.service 
#

La commande ne donne aucune sortie si l'exécution est réussie.

2. Vérification de l'état du service à l'aide de systemctl

Nous pouvons vérifier l'état du service à l'aide de la commande ci-dessous.

# systemctl status mysql.service 
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2020-05-02 17:39:22 UTC; 9s ago
 Main PID: 26948 (code=exited, status=0/SUCCESS)

3. Démarrer le service en utilisant systemctl

# systemctl start mysql.service 
# 
# systemctl status mysql.service 
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 17:41:43 UTC; 3s ago
  Process: 30254 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, s
  Process: 30233 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 30256 (mysqld)
    Tasks: 27 (limit: 2318)
   CGroup: /system.slice/mysql.service
           └─30256 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Notez que lorsque nous avions arrêté le service, la valeur "Active" était inactive (morte). Après le démarrage du service, il devient actif (en cours d'exécution).

4. Redémarrez le service à l'aide de systemctl

# systemctl restart apache2.service
# systemctl status apache2.service 
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Sat 2020-05-02 17:55:09 UTC; 8s ago

Astuce :Il n'est pas nécessaire d'utiliser le nom complet du service avec la commande systemctl. Par exemple, si nous exécutons "systemctl restart mysql", il y ajoutera automatiquement ".service" et exécutera la commande "systemctl restart mysql.service".

Gérer les services Ubuntu à l'aide de la commande service

Nous pouvons lister tous les services en utilisant service --status-all commande. Si nécessaire, utilisez la commande grep pour filtrer le service que vous recherchez.

# service --status-all | grep mysql
 [ + ]  mysql
#

Dans la commande de service, nous devons d'abord spécifier le nom du service, puis la commande à exécuter.

Arrêter un service :

# service mysql stop

Démarrer un service :

# service mysql start

Redémarrer un service :

# service mysql restart

Vérification de l'état du service :

# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 18:19:34 UTC; 39s ago
  Process: 31768 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, s
  Process: 31746 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 31770 (mysqld)
    Tasks: 27 (limit: 2318)
   CGroup: /system.slice/mysql.service
           └─31770 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Scripts d'initialisation Ubuntu pour gérer les services

Les scripts d'initialisation des services sont situés dans /etc/init.d/ annuaire. Nous pouvons utiliser ces scripts pour gérer les services. Cependant, il n'est plus recommandé de les utiliser et il est préférable d'utiliser la commande systemctl.

Arrêter un service :

# /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
#

Démarrer un service :

# /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
#

Redémarrer un service :

# /etc/init.d/mysql restart
[ ok ] Restarting mysql (via systemctl): mysql.service.
#

Vérification de l'état du service :

# /etc/init.d/mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-02 18:26:30 UTC; 17s ago

Problèmes d'autorisation lors du démarrage/arrêt des services

Si vous n'êtes pas connecté en tant qu'utilisateur root, les commandes ci-dessus vous demanderont de fournir un mot de passe utilisateur root à exécuter. Si le mauvais mot de passe est entré, l'erreur d'échec d'authentification sera générée et la commande ne sera pas exécutée.

Si vous êtes sur la liste sudoers, vous pouvez exécuter ces commandes en tant qu'utilisateur sudo. Si vous n'êtes pas sur la liste sudoers, un message d'erreur s'affichera indiquant que vous n'êtes pas sur la liste sudoers et l'incident sera signalé.

test@localhost:~$ systemctl stop mysql
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to stop 'mysql.service'.
Authenticating as: root
Password: 
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Failed to stop mysql.service: Access denied
See system logs and 'systemctl status mysql.service' for details.
test@localhost:~$ sudo systemctl stop mysql
[sudo] password for test: 
test is not in the sudoers file.  This incident will be reported.
test@localhost:~$ 

Donc, si vous souhaitez gérer un service, assurez-vous de disposer des privilèges nécessaires pour exécuter ces commandes.

Conclusion

Nous avons appris différentes façons de gérer les services sur Ubuntu. La commande systemctl est l'approche préférée pour démarrer/arrêter/redémarrer les services sur Ubuntu. Cependant, les scripts init impriment l'état de la commande, ce qui peut être utile dans les scripts shell pour les exécuter et obtenir immédiatement l'état de la commande.


Linux
  1. Services de démarrage, d'arrêt et de redémarrage sur le serveur systemd RHEL 7 Linux

  2. Comment démarrer, arrêter et redémarrer les services sur un serveur dédié Linux

  3. Démarrer, arrêter ou redémarrer les services dans CentOS 8 - Processus étape par étape ?

  4. Comment démarrer/arrêter/redémarrer les services dans CentOS Web Panel

  5. Démarrer, arrêter et redémarrer Crond Daemon sous Linux

Comment démarrer, arrêter ou redémarrer des services dans Ubuntu 20.04 LTS

Comment démarrer, arrêter ou redémarrer les services dans CentOS 8

Comment démarrer, arrêter et redémarrer les services dans Debian 10

Comment redémarrer les services sur la ligne de commande Ubuntu

Comment démarrer, arrêter ou redémarrer les services dans Ubuntu

Comment démarrer, arrêter ou redémarrer les services réseau sur Rocky Linux 8