GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Gestion des processus dans Ubuntu Linux

La gestion des processus sous Linux est un sujet important à apprendre et à comprendre, car il s'agit d'un système d'exploitation multitâche et de nombreux processus sont en cours en même temps. Linux fournit de nombreux outils pour gérer les processus, comme la liste des processus en cours d'exécution, la suppression des processus, la surveillance de l'utilisation du système, etc. Sous Linux, chaque processus est représenté par son ID de processus (PID). Il existe d'autres attributs au processus, tels que l'identifiant d'utilisateur et l'identifiant de groupe, si un utilisateur ou un groupe exécute le processus. Parfois, vous devez tuer ou interagir avec un processus, vous devez donc savoir comment gérer ces processus pour que votre système fonctionne correctement. Sous Linux, les processus peuvent être gérés avec des commandes telles que ps, pstree, pgrep, pkill, lsof, top, nice, renice et kill, etc.

Processus

L'exécution d'une instance d'un programme s'appelle un processus. Sous Linux, l'identifiant de processus (PID) est utilisé pour représenter un processus distinct pour chaque processus. Il existe deux types de processus,

  • Processus en arrière-plan
  • Processus de premier plan

Processus en arrière-plan

Les processus d'arrière-plan démarrent dans le terminal et s'exécutent par eux-mêmes. Si vous exécutez un processus dans le terminal, sa sortie sera affichée dans une fenêtre de terminal et vous pourrez interagir avec lui, mais si vous n'avez pas besoin d'interagir avec le processus, vous pouvez l'exécuter en arrière-plan. Si vous souhaitez exécuter un processus en arrière-plan, ajoutez simplement un signe "&" à la fin de la commande, et il commencera à s'exécuter en arrière-plan ; cela vous fera gagner du temps et vous pourrez démarrer un autre processus. Pour répertorier les processus exécutés en arrière-plan, utilisez la commande "jobs". Elle affichera tous les processus en cours d'exécution en arrière-plan.

Par exemple, la mise à niveau est un long processus sous Linux. Cela prend trop de temps, et si vous voulez faire autre chose pendant la mise à jour du système, utilisez la commande background.

[email protected] :~$ sudo apt-get upgrade -y &

Il commencera à fonctionner en arrière-plan. Et vous pouvez interagir avec d'autres programmes en attendant. Vous pouvez vérifier combien et quels processus s'exécutent en arrière-plan en tapant cette commande.

[email protected] :~$ jobs
[1]+ Exécution de sudo apt-get upgrade -y &

Processus de premier plan

Tous les processus que nous exécutons dans le terminal sont, par défaut, exécutés en tant que processus de premier plan. Nous pouvons les gérer par des commandes de premier plan et d'arrière-plan.

Vous pouvez mettre au premier plan n'importe quel processus d'arrière-plan répertorié dans les tâches en tapant la commande "fg" suivie du numéro du processus d'arrière-plan.

[email protected] :~$ fg %1
sudo apt-get upgrade -y

Et si vous voulez mettre ce processus en arrière-plan, tapez cette commande.

[email protected] :~$ bg %1

Répertorier et gérer les processus avec la commande ps

Le processus de listage avec la commande ps est l'un des moyens les plus anciens d'afficher les processus en cours d'exécution du terminal. Tapez la commande ps pour répertorier les processus en cours d'exécution, la quantité de ressources système qu'ils utilisent et qui les exécute.

[email protected] :~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Jim 1562 0.0 0.0 164356 6476 tty2 Ssl+ 13:07 0:00 shell
Jim 1564 5.2 0.9 881840 78704 tty2 Sl+ 3:07 13:13 dauth
Jim 2919 0.0 0.0 11328 4660 pts/0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 3412 pts R+ :19 0:00 ps u
… coupez…

La colonne utilisateur affiche le nom d'utilisateur dans le tableau ci-dessus et PID affiche l'ID de processus. Vous pouvez utiliser le PID pour tuer ou envoyer le signal de mise à mort à un processus. %CPU affiche le processeur en pourcentage du processeur et %MEM affiche l'utilisation de la mémoire à accès aléatoire. Pour tuer un processus, tapez.

[email protected] :~$ kill [ identifiant de processus (PID) ]

ou

[email protected] :~$ kill -9 [ identifiant de processus (PID) ]

Utilisez la commande ps aux pour voir tous les processus en cours d'exécution et ajoutez un canal pour les voir dans l'ordre.

[protégé par e-mail] :~$ ps aux | moins

Si vous souhaitez réorganiser les colonnes, vous pouvez le faire en ajoutant un drapeau -e pour lister tous les processus et -o pour indiquer pour les colonnes par mots clés dans la commande ps.

[email protected] :~$ps -eo pid,user,uid,%cpu,%mem,vsz,rss,comm
PID USER UID %CPU %MEM VSZ RSS COMMAND
1 root 0 0.1 0.1 167848 11684 système
3032 jim 1000 16.5 4.7 21744776 386524 chromé
…snip…

Options pour la commande ps.

L'option u est utilisée pour répertorier les processus par les utilisateurs.

[email protected] :~$ ps tu

L'option f est utilisée pour afficher la liste complète.

[email protected] :~$ ps f

L'option x est utilisée pour afficher des informations sur le processus sans terminal.

[protégé par e-mail] :~$ ps x

L'option est utilisée pour afficher des informations étendues.

[email protected] :~$ ps e

une option permet de lister tous les processus avec le terminal.

[email protected] :~$ ps a

L'option v est utilisée pour afficher le format de la mémoire virtuelle.

[email protected] :~$ ps v

Indicateurs pour la commande ps.

-e drapeau est utilisé pour voir chaque processus sur le système.

[protégé par e-mail] :~$ ps -e

-u flag est utilisé pour voir les processus s'exécutant en tant que root.

[protégé par e-mail] :~$ ps -u

-f drapeau est utilisé pour une liste complète des processus.

[protégé par e-mail] :~$ ps -f

-o flag est utilisé pour lister les processus dans la colonne souhaitée.

[email protected] :~$ ps -o
pstree

pstree est une autre commande pour lister les processus; il affiche la sortie sous forme d'arborescence.

[email protected] :~$ ptree

Options de la commande pstree

-n est utilisé pour trier les processus par PID.

[email protected] :~$ pstree -n

-H est utilisé pour mettre en évidence les processus.

[email protected] :~$ pstree -H [PID]
[email protected] :~$ pstree -H 6457

-a est utilisé pour afficher la sortie, y compris les arguments de ligne de commande.

[email protected] :~$ pstree -a

-g est utilisé pour afficher les processus par identifiant de groupe.

[email protected] :~$ pstree -g

-s est utilisé pour semer l'arbre ou un processus spécifique.

[email protected] :~$ pstree -s [PID]
[email protected] :~$ pstree -s 6457

[nom d'utilisateur] est utilisé pour afficher les processus appartenant à un utilisateur.

[email protected] :~$ pstree [userName]
[email protected] :~$ pstree jim
pgrep

Avec la commande pgrep, vous pouvez trouver un processus en cours d'exécution en fonction de certains critères. Vous pouvez utiliser le nom complet ou l'abréviation du processus pour rechercher ou par nom d'utilisateur ou d'autres attributs. La commande pgrep suit le modèle suivant.

[email protected] :~$ Pgrep [option] [pattern]
[email protected] :~$ pgrep -u jim chrome
Options de la commande pgrep

-i est utilisé pour la recherche insensible à la casse

[email protected] :~$ Pgrep -i firefox

-d est utilisé pour délimiter la sortie

[email protected] :~$ Pgrep -u jim -d :

-u est utilisé pour trouver le processus appartenant à un utilisateur

[email protected] :~$ Pgrep -u jim

-a est utilisé pour répertorier les processus à côté de leurs commandes

[email protected] :~$ Pgrep -u jim -a

-c est utilisé pour afficher le nombre de processus correspondants

[protégé par e-mail] :~$ Pgrep -c -u jim

-l est utilisé pour lister les processus et leur nom

[email protected] :~$ Pgrep -u jim -l
pkill

Avec la commande pkill, vous pouvez envoyer un signal à un processus en cours d'exécution en fonction de certains critères. Vous pouvez utiliser le nom complet ou l'abréviation du processus pour rechercher ou par nom d'utilisateur ou d'autres attributs. La commande pgrep suit le modèle suivant.

[email protected] :~$ Pkill [Options] [Patterns]
[email protected] :~$ Pkill -9 chrome
Options pour la commande pkill

–signal est utilisé pour envoyer un signal, par ex. SIGKILL, SIGTERM, etc.

[email protected] :~$ Pkill –signal SIGTERM vscode

-HUP est utilisé pour recharger un processus

[email protected] :~$ Pkill -HUP syslogd

-f est utilisé pour tuer les processus basés sur la ligne de commande complète.

[email protected] :~$ Pkill -f "ping 7.7.7.7"

-u est utilisé pour tuer tous les processus appartenant à un utilisateur.

[email protected] :~$ Pkill -u jim

-i est utilisé pour la suppression insensible à la casse du processus par pkill.

[email protected] :~$ Pkill -i firefox

-9 est utilisé pour envoyer un signal de mise à mort.

[protégé par e-mail] :~$ Pkill -9 chrome

-15 est utilisé pour envoyer un signal de terminaison.

[email protected] :~$ Pkill -15 vlc
lsof (Liste des fichiers ouverts)

Cet utilitaire de ligne de commande est utilisé pour lister les fichiers ouverts par plusieurs processus. Et comme nous le savons, tous les systèmes UNIX/Linux reconnaissent tout comme un fichier, il est donc pratique d'utiliser la commande lsof pour lister tous les fichiers ouverts.

[e-mail protégé] :~ $ lsof

Dans le tableau ci-dessus de la commande lsof, FD représente la description du fichier, cwd représente le répertoire de travail actuel, txt signifie fichier texte, mem signifie fichiers mappés en mémoire, mmap signifie périphériques mappés en mémoire, REG représente un fichier normal, DIR représente le répertoire, rtd signifie répertoire racine. Il existe d'autres options que vous pouvez utiliser avec la commande lsof.

Options de la commande lsof.

-c est utilisé pour la liste des fichiers ouverts par leur nom de processus.

[protégé par e-mail] :~$ lsof -c chrome

-u est utilisé pour la liste des fichiers ouverts par un utilisateur.

[email protected] :~$ lsof -u jim

-i est utilisé pour la liste des processus s'exécutant sur un port.

[protégé par e-mail] :~$ lsof -i

+D est utilisé pour la liste des fichiers ouverts sous un répertoire.

[email protected] :~$ lsof +D /home/

-p est utilisé pour le listage des fichiers ouverts par un processus.

[e-mail protégé] :~$ lsof -p 1342

Processus de liste et de gestion avec la commande top

Avec la commande top, vous pouvez afficher une vue en temps réel des processus système en cours d'exécution. Il affiche les processus en fonction de l'utilisation du processeur. Vous pouvez trier la colonne selon vous. La commande top fournit également des informations sur votre système, telles que la durée d'exécution du système ou le nombre d'utilisateurs connectés au système et le nombre de processus en cours d'exécution, la quantité de CPU et de RAM utilisée et une liste de chacun. processus.

Tapez la commande top pour répertorier les processus en cours d'exécution.

[email protected] :~$ en haut

Tâches :291 au total, 1 en cours d'exécution, 290 en sommeil, 0 à l'arrêt, 0 zombie

%Cpu(s) :2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0st

MiB Mem :7880,6 au total, 1259,9 libres, 3176 utilisés, 3444,4 buff/cache

MiB Swap :2 048,0 au total, 2 048,0 gratuits, 0,0 utilisé. 4091.8 dispo Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

3241 jim 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 chromé

3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 chromé

2920 jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 chromé

3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 chromé

3030 jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 chromé

3937 jim 20 0 4610540 104908 72292 S 0,7 1,3 0:05,91 chromé

1603 jim 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg

1756 jim 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 gnome-s+

1898 jim 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 fusuma

3027 jim 20 0 587580 14304 75960 S 0,3 1,8 9:43,59 chromé

3388 jim 20 0 4674192 156208 85032 S 0,3 1,9 0:13,91 chromé

3409 jim 20 0 4642180 140020 87304 S 0,3 1,7 0:15,36 chromé

3441 jim 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 chromé

….couper….

Vous pouvez également effectuer certaines actions avec la commande top pour apporter des modifications aux processus en cours d'exécution ; voici la liste ci-dessous.

  • u en appuyant sur "u", vous pouvez afficher un processus en cours d'exécution par un certain utilisateur.
  • M en appuyant sur "M", vous pouvez organiser par utilisation de la RAM plutôt que par l'utilisation du processeur.
  • P en appuyant sur "P", vous pouvez trier par utilisation du processeur.
  • 1 en appuyant sur "1" basculer entre l'utilisation des processeurs s'il y en a plus d'un.
  • R en appuyant sur "R", vous pouvez inverser le tri de votre sortie.
  • h en appuyant sur "h", vous pouvez accéder à l'aide et appuyer sur n'importe quelle touche pour revenir.

Notez quel processus consomme le plus de mémoire ou de CPU. Les processus qui consomment plus de mémoire peuvent être tués, et les processus qui consomment plus de CPU peuvent être améliorés pour leur donner moins d'importance pour le processeur.

Tuer un processus au sommet : Appuyez sur k et écrivez l'ID de processus que vous voulez tuer. Tapez ensuite 15 ou 9 pour tuer normalement ou immédiatement; vous pouvez également tuer un processus avec une commande kill ou killall.

Reniez un processus au sommet : Appuyez sur r et écrivez le PID du processus que vous voulez renicer. Il vous demandera de taper le PID du processus puis la valeur de nicing que vous souhaitez donner à ce processus entre -19 et 20 (-19 signifie la plus haute importance et 20 la plus basse).

Répertorier et gérer les processus avec System Monitor

Linux dispose d'un gnome de surveillance du système pour afficher les processus en cours d'exécution de manière plus dynamique. Pour démarrer le moniteur système, appuyez sur la touche Windows et tapez le moniteur système, cliquez sur son icône, et vous pouvez voir les processus dans les colonnes. En cliquant dessus avec le bouton droit de la souris, vous pouvez tuer, arrêter ou annuler le processus.

Les processus en cours d'exécution sont affichés avec les comptes d'utilisateurs par ordre alphabétique. Vous pouvez trier les processus par n'importe quel en-tête de champ comme CPU, Mémoire, etc., cliquez simplement dessus et ils seront triés. par exemple, cliquez sur CPU pour voir quel processus consomme le plus de puissance CPU. Pour gérer les processus, faites un clic droit dessus et sélectionnez l'option que vous voulez faire avec le processus. Pour gérer le processus, sélectionnez les options suivantes.

  • Propriétés- afficher d'autres paramètres liés à un processus.
  • Cartes mémoire- afficher les cartes de mémoire système pour montrer quelle bibliothèque et quels autres composants sont utilisés en mémoire pour le processus.
  • Ouvrir le fichier- montre quels fichiers sont ouverts par le processus.
  • Modifier la priorité- afficher une barre latérale à partir de laquelle vous pouvez affiner le processus avec les options de très haut à très bas et personnalisées.
  • Arrêter- interrompt le processus jusqu'à ce que vous décidiez de continuer.
  • Continuer- redémarre un processus suspendu.
  • Tuer- La force tue un processus instantanément.

Tuer un processus avec kill et killall

kill, et la commande killall est utilisée pour tuer/terminer un processus en cours d'exécution. Ces commandes peuvent également être utilisées pour envoyer un signal valide à un processus en cours d'exécution, comme dire à un processus de continuer, de terminer ou de relire les fichiers de configuration, etc. Les signaux peuvent être écrits dans les deux sens par des nombres ou par des noms. Voici quelques signaux couramment utilisés.

Description du numéro de signal

SIGHUP 1 Détecte le signal de raccrochage sur le terminal de contrôle.

SIGINT 2 Interprété à partir du clavier.

SIGQUIT 3 Quitter depuis le clavier.

SIGILL 4 Instructions illégales.

SIGTRAP 5 Est utilisé pour tracer un piège.

SIGABRT 6 est utilisé pour abandonner le signal de abort(3).

SIGKILL 9 Est utilisé pour envoyer un signal d'arrêt.

SIGTERM 15 Est utilisé pour envoyer un signal de terminaison.

SIGCONT 19,18,25 Est utilisé pour continuer un processus s'il est arrêté.

SIGSTOP 17,19,23 Est utilisé pour arrêter les processus.

Différentes valeurs de SIGCONT et SIGSTOP sont utilisées dans différents systèmes d'exploitation Unix/Linux. Pour des informations détaillées sur les signaux, tapez le terminal de signalisation man 7.

Utilisation de la commande kill pour envoyer un signal à traiter par PID.

Notez le processus auquel vous souhaitez envoyer un signal d'arrêt. Vous pouvez trouver l'ID de processus (PID) par ps ou la commande top.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

7780 jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 haut

Le processus supérieur consomme 33,3 % du processeur. Si vous voulez tuer ce processus pour économiser l'utilisation du processeur, voici quelques façons de mettre fin à ce processus avec la commande kill.

[email protected] : ~$ kill 7780

[email protected] :~$ kill -15 7780 ou $ kill -SIGTERM 7780

[email protected] :~$ kill -9 7780 ou $ kill -SIGKILL 7780

Utilisation de la commande killall pour envoyer des signaux à un processus par nom.

Avec la commande killall, vous n'avez pas besoin de rechercher l'ID de processus ; vous pouvez envoyer un signal d'arrêt à un processus par son nom plutôt que par son identifiant de processus. Il peut également tuer plus de processus que vous ne le souhaitez si vous ne faites pas attention, par exemple, "killall chrome" tuera tous les processus chrome, y compris ceux que vous ne voulez pas tuer. Parfois, il est utile de tuer les processus du même nom.

Comme la commande kill, vous pouvez taper les signaux par nom ou par numéro dans la commande killall. Tuez tout processus en cours d'exécution avec la commande killall ; vous n'avez qu'à taper son nom et le signal que vous voulez envoyer. par exemple, envoyez un processus de signal d'arrêt à firefox à l'aide de la commande killall, écrivez la commande ci-dessous.

[protégé par e-mail] :~$ killall -9 firefox

ou

[email protected] :~ $ killall SIGKILL chrome

Changer la priorité du processus avec nice et renice

Chaque processus de votre système Linux a une excellente valeur, comprise entre -19 et 20. Il a décidé quel processus obtiendrait le plus d'accès au processeur dans le système. Plus la valeur de nice est faible, plus un processus a accès au processus CPU. Comme -16 valeurs agréables ont plus accès au CPU que 18 valeurs agréables. Seul un utilisateur disposant des privilèges root peut attribuer une valeur négative de nice. Un utilisateur normal ne peut attribuer la valeur de "nice" qu'entre 0 et 19. Un utilisateur normal ne peut attribuer que des valeurs de nice plus élevées et sur ses propres processus. Un utilisateur root peut définir n'importe quelle valeur agréable sur n'importe quel processus.

Si vous souhaitez rendre un processus plus accessible à l'utilisation du processeur en lui attribuant la valeur nice, tapez la commande suivante.

[email protected] :~$ sympa +3 chrome

Et reniez le processus

[email protected] :~$ renice -n -6 3612

Conclusion

Voici le guide pour gérer votre système Linux avec ps, top, lsof, pstree, pkilll, kill, killall, nice, renice, etc. Certains processus consomment la majeure partie de l'utilisation du processeur et de la RAM; savoir comment les gérer augmente la vitesse et les performances de votre système et vous offre un meilleur environnement pour exécuter plus efficacement tous les processus que vous souhaitez.


Ubuntu
  1. Gestion des processus sous Linux avec kill et killall

  2. Installer Dropbox sur Ubuntu 14.10

  3. 30 exercices de processus Linux pour les administrateurs système

  4. Linux – Init Process :ancêtre de tous les processus ?

  5. MX Linux contre Ubuntu

Surveillance des processus sous Linux

Processus en cours d'exécution

Installer AngularJS dans Ubuntu 22.04 | 20.04Linux

Comprendre les processus sous Linux

Commandes pour la gestion des processus sous Linux

Comment tuer les processus zombies dans Ubuntu