Libre à vous de partager

Après avoir préparé le Raspberry pi à la fois sur le plan matériel et logiciel, nous allons maintenant voir les principales commandes du défi.

La majorité de ces principales commandes du défi vous seront utiles tout au long de votre utilisation de Linux.

Afin de ne pas surcharger le défi et de rester à une longueur d’article correcte, je ne ferai que survoler ces notions. Des articles plus détaillés sont prévus.

Fenêtre de connexion en ssh où nous allons mettre nos principales commandes du défi

Les droits d’administration

Avant de commencer à voir les principales commandes du défi, je vais expliquer brièvement comment les droits d’administration sont gérés.

Raspberry pi OS utilise l’approche qui désactive le compte root. Pour faire simple, sur un système Linux, il y a deux types de comptes : les comptes utilisateurs et les comptes administrateurs. Les comptes utilisateurs sont aussi appelés les comptes sans pouvoir ou privilège. Tandis que les comptes administrateurs sont appelés les comptes avec pouvoir ou privilège.

Cette approche présente un défaut majeur. Les comptes administrateurs avaient tous les pouvoirs sur le système et les comptes utilisateurs aucuns. Ce qui rendait la délégation de tâches administratives à des utilisateurs extrêmement complexes à paramétrer.

Une autre approche a été alors proposée. Elle consiste à fournir des droits administrateurs à des utilisateurs de manière fine. En effet, il est possible de donner un utilisateur ou un groupe un accès restreint à un certain nombre de commandes d’administration sans pour autant leur donner un accès total au système.

Il s’agit de ce qu’on a appelé la commande sudo. Par défaut, lors de l’installation du Raspberry pi OS, le compte créé est un compte utilisateur avec tous les privilèges administrateurs. Cependant, si la commande sudo n’est pas utilisé avant la commande d’administration, cette dernière échouera faute de droit.

Cela apporte une couche de sécurité supplémentaire, puisque seule la commande derrière le sudo est appliqué avec les droits administrateurs. Ainsi un script malveillant qui est lancé par un utilisateur, même avec pouvoir, ne pourra pas modifier le système sauf s’il est lancé avec le sudo.

Dans la suite de ce défi et de ses articles, j’utiliserai systématiquement le sudo. Si vous voyez qu’il n’y est pas, c’est que vous n’en avez pas besoin.

À noter : de manière générale, un utilisateur sans pouvoir peut afficher la majorité des informations du système. En revanche il ne peut pas les modifier. Donc la majorité des commandes qui affichent un statut, n’ont pas besoin du sudo alors que ceux qui le modifient en ont besoin.

Les principales commandes du défi pour la gestion des logiciels.

Nous allons voir ici comment installer, supprimer et mettre à jour des logiciels. Il s’appuie sur un utilitaire nommé APT. Ce dernier est commun à toutes les distributions issues de la distribution Debian.

La page suivante de la documentation de Debian fournit plus d’informations.

Rechercher un logiciel

La recherche de logiciels peut être rapidement verbeuse. Si vous connaissez déjà le nom du paquet, je vous conseille d’essayer de l’installer directement. Uniquement si l’installation échoue, cette commande peut s’avérer intéressante. En effet elle va lister la majorité des paquets proches en termes de nom ou ayant le mot du paquet dans sa description.

gabriel@raspberrypi:~ $ apt search bind9
En train de trier... Fait
Recherche en texte intégral... Fait
bind9/oldstable 1:9.16.44-1~deb11u1 armhf
  Internet Domain Name Server

bind9-dev/oldstable 1:9.16.44-1~deb11u1 armhf
  Static Libraries and Headers used by BIND 9

bind9-dnsutils/oldstable 1:9.16.44-1~deb11u1 armhf
  Clients provided with BIND 9

bind9-doc/oldstable 1:9.16.44-1~deb11u1 all
  Documentation for BIND 9

bind9-dyndb-ldap/oldstable 11.6-3 armhf
  LDAP back-end plug-in for BIND

bind9-host/oldstable,now 1:9.16.44-1~deb11u1 armhf  [installé, automatique]
  DNS Lookup Utility

bind9-libs/oldstable,now 1:9.16.44-1~deb11u1 armhf  [installé, automatique]
  Shared Libraries used by BIND 9

bind9-utils/oldstable 1:9.16.44-1~deb11u1 armhf
  Utilities for BIND 9

bind9utils/oldstable 1:9.16.44-1~deb11u1 all
  Transitional package for bind9-utils

bindgraph/oldstable 0.2a-6 all
  DNS statistics RRDtool frontend for BIND9
...

Installer un logiciel

Contrairement à Windows, l’installation de logiciels via la commande APT est simple. Sauf dans quelques cas très précis, aucune confirmation ne vous sera demandée. Le système de paquets utilisés sous Linux est moins flexible.

Vous ne pouvez pas choisir où seront installés les logiciels. De plus, les logiciels sont rarement installés dans un seul répertoire. Nous aborderons plus en détail ce point dans le prochain article.

gabriel@raspberrypi:~ $ sudo apt install bind9
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
  bind9-utils python3-ply
Paquets suggérés :
  bind-doc dnsutils ufw python-ply-doc
Les NOUVEAUX paquets suivants seront installés :
  bind9 bind9-utils python3-ply
0 mis à jour, 3 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/991 ko dans les archives.
Après cette opération, 2 149 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o
Sélection du paquet python3-ply précédemment désélectionné.
(Lecture de la base de données... 106624 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../python3-ply_3.11-4_all.deb ...
Dépaquetage de python3-ply (3.11-4) ...
Sélection du paquet bind9-utils précédemment désélectionné.
Préparation du dépaquetage de .../bind9-utils_1%3a9.16.44-1~deb11u1_armhf.deb ...
Dépaquetage de bind9-utils (1:9.16.44-1~deb11u1) ...
Sélection du paquet bind9 précédemment désélectionné.
Préparation du dépaquetage de .../bind9_1%3a9.16.44-1~deb11u1_armhf.deb ...
Dépaquetage de bind9 (1:9.16.44-1~deb11u1) ...
Paramétrage de python3-ply (3.11-4) ...
Paramétrage de bind9-utils (1:9.16.44-1~deb11u1) ...
Paramétrage de bind9 (1:9.16.44-1~deb11u1) ...
Ajout du groupe « bind » (GID 124)...
Fait.
Ajout de l'utilisateur système « bind » (UID 116) ...
Ajout du nouvel utilisateur « bind » (UID 116) avec pour groupe d'appartenance « bind » ...
Le répertoire personnel « /var/cache/bind » n'a pas été créé.
wrote key file "/etc/bind/rndc.key"
named-resolvconf.service is a disabled or a static unit, not starting it.
Created symlink /etc/systemd/system/bind9.service → /lib/systemd/system/named.service.
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /lib/systemd/system/named.service.
Traitement des actions différées (« triggers ») pour man-db (2.9.4-2) ...

Supprimer un logiciel

Les commandes de suppression des logiciels demandes généralement une confirmation. Étant sous un système Linux dérivant de Debian, la désinstallation d’un logiciel ne supprime pas les fichiers de configuration. Ce qui n’est pas le comportement par défaut de la distribution Red Hat.

À ces fins il existe donc deux méthodes pour désinstaller un logiciel. La commande remove qui ne supprime pas les fichiers de configuration et la commande de purge qui elle supprime les fichiers configuration.

L’avantage de ce comportement et que si vous souhaitez réinstaller un paquet à la suite d’un problème, vous n’avez pas besoin de refaire la configuration du logiciel. L’inconvénient est que si la configuration est cassée, il faut absolument utiliser la commande purge pour repartir de zéro.

gabriel@raspberrypi:~ $ sudo apt remove bind9
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  bind9-utils python3-ply
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
  bind9
0 mis à jour, 0 nouvellement installés, 1 à enlever et 0 non mis à jour.
Après cette opération, 1 015 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 106751 fichiers et répertoires déjà installés.)
Suppression de bind9 (1:9.16.44-1~deb11u1) ...
Traitement des actions différées (« triggers ») pour man-db (2.9.4-2) ...
gabriel@raspberrypi:~ $ sudo apt autoremove
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  bind9-utils python3-ply
0 mis à jour, 0 nouvellement installés, 2 à enlever et 0 non mis à jour.
Après cette opération, 1 135 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 106716 fichiers et répertoires déjà installés.)
Suppression de bind9-utils (1:9.16.44-1~deb11u1) ...
Suppression de python3-ply (3.11-4) ...
Traitement des actions différées (« triggers ») pour man-db (2.9.4-2) ...

Mettre à jour un logiciel

La mise à jour d’un logiciel ou du système, repose sur deux actions. La première consiste à mettre à jour la liste des dépôts et donc des logiciels. À l’issue de cette commande, vous serez notifiés du nombre de paquets nécessitant une mise à jour.

gabriel@raspberrypi:~ $ sudo apt update
Réception de :1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease [15,0 kB]
Réception de :2 http://archive.raspberrypi.org/debian bullseye InRelease [23,6 kB]
Réception de :3 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages [13,2 MB]
Réception de :4 http://archive.raspberrypi.org/debian bullseye/main armhf Packages [313 kB]
13,6 Mo réceptionnés en 13s (1 039 ko/s)
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
8 paquets peuvent être mis à jour. Exécutez « apt list --upgradable » pour les voir.

La mise à jour à proprement parler repose sur une deuxième commande.

gabriel@raspberrypi:~ $ sudo apt upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  libfuse2
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
Les paquets suivants seront mis à jour :
  base-files curl libcurl3-gnutls libcurl4 libssl1.1 openssl python3-sense-hat raspi-config
8 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 3 118 ko dans les archives.
Après cette opération, 35,8 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o
Réception de :1 http://archive.raspberrypi.org/debian bullseye/main armhf libssl1.1 armhf 1.1.1w-0+deb11u1+rpt1 [1 298 kB]
Réception de :3 http://archive.raspberrypi.org/debian bullseye/main armhf openssl armhf 1.1.1w-0+deb11u1+rpt1 [823 kB]
Réception de :4 http://archive.raspberrypi.org/debian bullseye/main armhf python3-sense-hat all 2.6.0-1 [17,1 kB]
Réception de :5 http://archive.raspberrypi.org/debian bullseye/main armhf raspi-config all 20231012~bullseye [32,9 kB]
Réception de :2 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf base-files armhf 11.1+rpi1+deb11u8 [70,4 kB]
Réception de :6 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf curl armhf 7.74.0-1.3+deb11u10 [259 kB]
Réception de :7 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf libcurl4 armhf 7.74.0-1.3+deb11u10 [310 kB]
Réception de :8 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf libcurl3-gnutls armhf 7.74.0-1.3+deb11u10 [307 kB]
3 118 ko réceptionnés en 1s (3 931 ko/s)
Lecture des fichiers de modifications (« changelog »)... Terminé
Préconfiguration des paquets...
(Lecture de la base de données... 106764 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../base-files_11.1+rpi1+deb11u8_armhf.deb ...
Dépaquetage de base-files (11.1+rpi1+deb11u8) sur (11.1+rpi1+deb11u7) ...
Paramétrage de base-files (11.1+rpi1+deb11u8) ...
Installation de la nouvelle version du fichier de configuration /etc/debian_version ...
(Lecture de la base de données... 106764 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libssl1.1_1.1.1w-0+deb11u1+rpt1_armhf.deb ...
Dépaquetage de libssl1.1:armhf (1.1.1w-0+deb11u1+rpt1) sur (1.1.1w-0+deb11u1) ...
Paramétrage de libssl1.1:armhf (1.1.1w-0+deb11u1+rpt1) ...
(Lecture de la base de données... 106764 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../0-curl_7.74.0-1.3+deb11u10_armhf.deb ...
Dépaquetage de curl (7.74.0-1.3+deb11u10) sur (7.74.0-1.3+deb11u9) ...
Préparation du dépaquetage de .../1-libcurl4_7.74.0-1.3+deb11u10_armhf.deb ...
Dépaquetage de libcurl4:armhf (7.74.0-1.3+deb11u10) sur (7.74.0-1.3+deb11u9) ...
Préparation du dépaquetage de .../2-libcurl3-gnutls_7.74.0-1.3+deb11u10_armhf.deb ...
Dépaquetage de libcurl3-gnutls:armhf (7.74.0-1.3+deb11u10) sur (7.74.0-1.3+deb11u9) ...
Préparation du dépaquetage de .../3-openssl_1.1.1w-0+deb11u1+rpt1_armhf.deb ...
Dépaquetage de openssl (1.1.1w-0+deb11u1+rpt1) sur (1.1.1w-0+deb11u1) ...
Préparation du dépaquetage de .../4-python3-sense-hat_2.6.0-1_all.deb ...
Dépaquetage de python3-sense-hat (2.6.0-1) sur (2.4.0-1) ...
Préparation du dépaquetage de .../5-raspi-config_20231012~bullseye_all.deb ...
Dépaquetage de raspi-config (20231012~bullseye) sur (20230214) ...
Paramétrage de libcurl3-gnutls:armhf (7.74.0-1.3+deb11u10) ...
Paramétrage de python3-sense-hat (2.6.0-1) ...
Paramétrage de libcurl4:armhf (7.74.0-1.3+deb11u10) ...
Paramétrage de curl (7.74.0-1.3+deb11u10) ...
Paramétrage de openssl (1.1.1w-0+deb11u1+rpt1) ...
Paramétrage de raspi-config (20231012~bullseye) ...
Traitement des actions différées (« triggers ») pour man-db (2.9.4-2) ...
Traitement des actions différées (« triggers ») pour install-info (6.7.0.dfsg.2-6) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.31-13+rpt2+rpi1+deb11u7) ...

Note : il est possible de mettre à jour un paquet directement en fournissant le nom du paquet derrière la commande. Cette astuce peut vous servir lorsque vous voyez qu’un certain nombre de paquets ne sont pas mis à jour. Ce problème peut venir que le gestionnaire de dépendance du logiciel APT n’arrive pas à trouver une solution de mise à jour. Si cela ne fonctionne pas, il faut faire un à un les paquets jusqu’à trouver celui qui passe et qui généralement va débloquer le reste de la mise à jour.

Purger les fichiers de configuration d’un logiciel désinstallé

Si lorsque vous désinstallez un logiciel, vous pouvez demander la purge des fichiers de configuration, il n’en va pas de même pour la mise à jour de logiciels. En effet les anciens fichiers de configuration restent en place. Ainsi vous pouvez revenir facilement en arrière en cas de problème lors de la mise à jour.

Cependant, avec le temps, ces fichiers peuvent occuper une place importante sur la carte SD. Si sur les ordinateurs actuels équipés de plusieurs centaines de giga-octets de disque dur, ce problème n’est pas impactant. Il n’en va pas de même pour les cartes SD du Raspberry souvent limitée à quelques dizaines de giga-octets de disque. Il convie donc de nettoyer de manière régulière ces fichiers.

gabriel@raspberrypi:~ $ dpkg -l | grep ^rc | awk '{print $2}' | xargs sudo dpkg -P
(Lecture de la base de données... 106647 fichiers et répertoires déjà installés.)
Purge des fichiers de configuration de bind9 (1:9.16.44-1~deb11u1) ...
dpkg: avertissement: lors de la suppression de bind9, le répertoire « /var/cache/bind » n'était pas vide, donc il n'a pas été supprimé
dpkg: avertissement: lors de la suppression de bind9, le répertoire « /etc/apparmor.d/local » n'était pas vide, donc il n'a pas été supprimé
Purge des fichiers de configuration de fuse (2.9.9-5) ...

Note : Après une mise à jour majeur du système, je vous conseille d’attendre au moins 15 jours avant d’effectuer ce nettoyage.

Nettoyer la base de données

Par défaut APT garde une copie de tous les paquets qu’il installe. Cela permet en cas de réinstallation des paquets de ne pas avoir à télécharger à nouveau les paquets en question. Avec le temps, cela occupe de plus en plus de place. Il est possible de faire un nettoyage de ce cache en supprimant les paquets qui ne sont plus installés sur le système.

gabriel@raspberrypi:~ $ sudo apt clean
gabriel@raspberrypi:~ $ sudo apt autoclean
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait

Note : Je recommande de faire ce type de nettoyage une à deux fois par an.

Les principales commandes du défi pour la gestion des ressources

Nous allons voir ici comment éteindre ou redémarrer le Raspberry à partir de la ligne de commande.

Nous découvrirons aussi comment afficher la charge en temps réel du Raspberry pi. Puis nous verrons comment arrêter un processus qui ne répond pas.

Arrêter le Raspberry

Il est possible d’arrêter ou de redémarrer le Raspberry directement en ligne de commande. Il est à noter que ces commandes ne peuvent pas être annulées.

#arrêter
gabriel@raspberrypi:~ $ sudo halt
#redémarrer
gabriel@raspberrypi:~ $ sudo reboot now

Afficher l’utilisation de la RAM

Il peut être intéressant d’avoir la consommation de RAM du système. Surtout si le système se met à ralentir sérieusement.

gabriel@raspberrypi:~ $ free -m
               total       utilisé      libre     partagé tamp/cache   disponible
Mem:             921         180         250          10         490         671
Partition d'échange:         99           0          99

Afficher la capacité des disques

Cette commande vous fournit la totalité de la consommation de l’espace disque par le système. Il ne prend en compte que les systèmes de fichiers montés. Nous aborderons dans le prochain article des concepts plus avancés sur les systèmes de fichiers.

gabriel@raspberrypi:~ $ df -PTh
Sys. de fichiers Type     Taille Utilisé Dispo Uti% Monté sur
/dev/root        ext4        14G    3,7G  9,7G  28% /
devtmpfs         devtmpfs   333M       0  333M   0% /dev
tmpfs            tmpfs      461M       0  461M   0% /dev/shm
tmpfs            tmpfs      185M    1,1M  184M   1% /run
tmpfs            tmpfs      5,0M    4,0K  5,0M   1% /run/lock
/dev/mmcblk0p1   vfat       255M     51M  205M  20% /boot
tmpfs            tmpfs       93M     24K   93M   1% /run/user/1000

Les principales commandes du défi pour la gestion des processus

Systemd

Ce nouveau système de gestion des processus à remplacer au cours de la décennie précédente le vénérable système init V. Ce remplacement ne s’est pas fait sans de nombreux débats au sein de la communauté.

Il centralise à la fois la gestion des processus mais aussi des journaux de ces processus.

Dans cette partie, nous nous contenterons de la gestion des processus.

Vérifier l’état d’un service

Si le service est démarré.

gabriel@raspberrypi:~ $ systemctl status bind9
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-10-17 18:21:06 CEST; 40s ago
       Docs: man:named(8)
   Main PID: 3268 (named)
      Tasks: 14 (limit: 1595)
        CPU: 179ms
     CGroup: /system.slice/named.service
             └─3268 /usr/sbin/named -f -u bind

oct. 17 18:21:06 raspberrypi named[3268]: command channel listening on ::1#953
oct. 17 18:21:06 raspberrypi named[3268]: managed-keys-zone: loaded serial 12
oct. 17 18:21:06 raspberrypi named[3268]: zone 0.in-addr.arpa/IN: loaded serial 1
oct. 17 18:21:06 raspberrypi named[3268]: zone 255.in-addr.arpa/IN: loaded serial 1
oct. 17 18:21:06 raspberrypi named[3268]: zone 127.in-addr.arpa/IN: loaded serial 1
oct. 17 18:21:06 raspberrypi named[3268]: zone localhost/IN: loaded serial 2
oct. 17 18:21:06 raspberrypi named[3268]: all zones loaded
oct. 17 18:21:06 raspberrypi named[3268]: running
oct. 17 18:21:07 raspberrypi named[3268]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
oct. 17 18:21:07 raspberrypi named[3268]: resolver priming query complete

Si le service est arrêté

gabriel@raspberrypi:~ $ systemctl status bind9
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Tue 2023-10-17 18:22:28 CEST; 3s ago
       Docs: man:named(8)
    Process: 3268 ExecStart=/usr/sbin/named -f $OPTIONS (code=exited, status=0/SUCCESS)
    Process: 3391 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)
   Main PID: 3268 (code=exited, status=0/SUCCESS)
        CPU: 363ms

oct. 17 18:22:26 raspberrypi named[3268]: no longer listening on 192.168.1.1#53
oct. 17 18:22:26 raspberrypi named[3268]: no longer listening on ::1#53
oct. 17 18:22:26 raspberrypi named[3268]: no longer listening on 2001:861:d50:6d90:ba27:ebff:fe06:3d4f#53
oct. 17 18:22:26 raspberrypi named[3268]: no longer listening on fe80::ba27:ebff:fe06:3d4f%2#53
oct. 17 18:22:26 raspberrypi named[3268]: shutting down: flushing changes
oct. 17 18:22:26 raspberrypi named[3268]: stopping command channel on 127.0.0.1#953
oct. 17 18:22:26 raspberrypi named[3268]: stopping command channel on ::1#953
oct. 17 18:22:28 raspberrypi named[3268]: exiting
oct. 17 18:22:28 raspberrypi systemd[1]: named.service: Succeeded.
oct. 17 18:22:28 raspberrypi systemd[1]: Stopped BIND Domain Name Server.

Arrêter un service

gabriel@raspberrypi:~ $ sudo systemctl stop bind9

Démarrer un service

gabriel@raspberrypi:~ $ sudo systemctl start bind9

Redémarrer un service

gabriel@raspberrypi:~ $ sudo systemctl restart bind9

Afficher les processus en cours

Il peut être intéressant d’afficher la liste des processus lancés.

gabriel@raspberrypi:~ $ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.9  34748  8912 ?        Ss   10:47   0:13 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    10:47   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   10:47   0:00 [rcu_gp]
root         4  0.0  0.0      0     0 ?        I<   10:47   0:00 [rcu_par_gp]
root         5  0.0  0.0      0     0 ?        I<   10:47   0:00 [slub_flushwq]
root         6  0.0  0.0      0     0 ?        I<   10:47   0:00 [netns]
root        10  0.0  0.0      0     0 ?        I<   10:47   0:00 [mm_percpu_wq]
root        11  0.0  0.0      0     0 ?        I    10:47   0:00 [rcu_tasks_rude_kthread]
root        12  0.0  0.0      0     0 ?        I    10:47   0:00 [rcu_tasks_trace_kthread]
root        13  0.0  0.0      0     0 ?        S    10:47   0:00 [ksoftirqd/0]
root        14  0.0  0.0      0     0 ?        I    10:47   0:00 [rcu_sched]
root        15  0.0  0.0      0     0 ?        S    10:47   0:00 [migration/0]
root        16  0.0  0.0      0     0 ?        S    10:47   0:00 [cpuhp/0]
root        17  0.0  0.0      0     0 ?        S    10:47   0:00 [cpuhp/1]
root        18  0.0  0.0      0     0 ?        S    10:47   0:01 [migration/1]
root        19  0.0  0.0      0     0 ?        S    10:47   0:00 [ksoftirqd/1]
root        22  0.0  0.0      0     0 ?        S    10:47   0:00 [cpuhp/2]
root        23  0.0  0.0      0     0 ?        S    10:47   0:01 [migration/2]
root        24  0.0  0.0      0     0 ?        S    10:47   0:00 [ksoftirqd/2]
root        27  0.0  0.0      0     0 ?        S    10:47   0:00 [cpuhp/3]
root        28  0.0  0.0      0     0 ?        S    10:47   0:01 [migration/3]
root        29  0.0  0.0      0     0 ?        S    10:47   0:00 [ksoftirqd/3]
root        31  0.0  0.0      0     0 ?        I<   10:47   0:00 [kworker/3:0H-kblockd]
root        32  0.0  0.0      0     0 ?        S    10:47   0:00 [kdevtmpfs]
....

Il est possible de n’afficher que les processus en tenant un certain mot. Cela est très utile quand un processus ne répond plus et que on a besoin de son PID pour l’arrêter.

gabriel@raspberrypi:~ $ ps aux | grep ssh
root       544  0.0  0.5  12412  5564 ?        Ss   09:56   0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
gabriel    755  0.0  0.0   4616   280 ?        Ss   09:56   0:00 /usr/bin/ssh-agent x-session-manager
gabriel    850  0.0  0.0   4616   280 ?        Ss   09:56   0:00 /usr/bin/ssh-agent -s
root      1807  1.4  0.7  14492  6872 ?        Ss   19:25   0:00 sshd: gabriel [priv]
gabriel   1814  0.0  0.4  14492  4208 ?        S    19:25   0:00 sshd: gabriel@pts/0
gabriel   1834  0.0  0.0   7464   568 pts/0    S+   19:25   0:00 grep --color=auto ssh

Arrêter un processus qui ne répond plus

La commande utilisée dans cette partie prend de nombreux paramètres. Nous nous contenterons d’aborder la version la plus « brutal » pour le système. Elle peut entraîner une perte de données, mais aboutira.

gabriel@raspberrypi:~ $ sudo kill -9 544

Conclusion

Nous voila arrivé au terme de cette présentation des principales commandes du défi. C’est un gros morceau que j’ai hésité à découper en deux ou trois articles.

Comme d’habitude, si vous avez des questions ou des remarques, n’hésitez pas à m’en faire part dans les commentaires.

Laisser un commentaire