La gestion des processus

Gestion des processus dans Ubuntu Linux

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, 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'ID utilisateur et l'ID 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, haut, sympa, renice et tuer, 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

Les processus en arrière-plan démarrent dans le terminal et s'exécutent seuls. 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 lister les processus exécutés en arrière-plan, utilisez la commande 'jobs.' Il affichera tous les processus en cours 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 à niveau du système, utilisez la commande d'arrière-plan.

[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 protégé] :~$ fg %1
sudo apt-get upgrade -y

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

[email protégé] :~$ bg %1

Lister 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 et la quantité de ressources système qu'ils utilisent et qui les exécute.

[email protégé] : ~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT COMMANDE HEURE DE DEBUT
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
Jean 2919 0.0 0.0 11328 4660 pts/0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 3412 pts/0 R+ 17:19 0:00 ps u
… couper…

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

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

ou alors

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

Utilisez la commande ps aux pour voir tous les processus en cours et ajoutez un tuyau pour le voir dans l'ordre.

[email protected]:~$ ps aux | moins

Si vous souhaitez réorganiser les colonnes, vous pouvez le faire en ajoutant un indicateur -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 COMMANDE
1 racine 0 0.dix.1 167848 11684 systématisé
3032 jim 1000 16.5 4.7 21744776 386524 chromé
… couper…

Options pour la commande ps.

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

[email protégé] : ~$ ps u

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

[email protégé] :~$ ps f

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

[email protégé] : ~$ ps x

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

[email protégé] : ~$ ps e

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

[email protégé] : ~$ ps a

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

[email protégé] : ~$ ps v

Indicateurs pour la commande ps.

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

[email protégé] :~$ ps -e

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

[email protégé] :~$ ps -u

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

[email protégé] :~$ ps -f

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

[email protégé] :~$ ps -o
pstree

pstree est une autre commande pour lister les processus ; il montre la sortie dans un format d'arbre.

[email protégé] :~$ pstree

Options de la commande pstree

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

[email protégé] :~$ pstree -n

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

[email protégé] :~$ pstree -H [PID]
[email protégé] :~$ pstree -H 6457

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

[email protégé] :~$ pstree -a

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

[email protégé] :~$ pstree -g

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

[email protégé] :~$ pstree -s [PID]
[email protégé] :~$ pstree -s 6457

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

[email protected] :~$ pstree [userName]
[email protégé] : ~$ 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] [motif]
[email protégé]:~$ pgrep -u jim chrome
Options pour la commande pgrep

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

[email protégé]:~$ Pgrep -i firefox

-ré est utilisé pour délimiter la sortie

[email protégé] :~$ Pgrep -u jim -d :

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

[email protégé]:~$ Pgrep -u jim

-une est utilisé pour lister les processus à côté de leurs commandes

[email protégé]:~$ Pgrep -u jim -a

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

[email protégé]:~$ Pgrep -c -u jim

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

[email protégé]:~$ Pgrep -u jim -l
tuer

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] [Motifs]
[email protégé] : ~$ Pkill -9 chrome
Options pour la commande pkill

-signal est utilisé pour envoyer un signal e.g. SIGKILL, SIGTERM, etc.

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

-HUP est utilisé pour recharger un processus

[email protégé] :~$ 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"

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

[email protégé]:~$ Pkill -u jim

-je est utilisé pour tuer le processus insensible à la casse par pkill.

[email protégé]:~$ Pkill -i firefox

-9 est utilisé pour envoyer un signal d'arrêt.

[email protégé] :~$ Pkill -9 chrome

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

[email protégé] : ~$ 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.

[email 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 un fichier texte, mem signifie des fichiers mappés en mémoire, mmap signifie des périphériques mappés en mémoire, REG représente un fichier normal, DIR représente un répertoire, rtd signifie répertoire racine. Il existe d'autres options que vous pouvez utiliser avec la commande lsof.

Options pour la commande lsof.

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

[email protégé]:~$ lsof -c chrome

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

[email protégé]:~$ lsof -u jim

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

[email protégé] :~$ lsof -i

+ré 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.

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

Lister et gérer le processus avec la commande supérieure

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, comme la durée de fonctionnement 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. traiter.

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

[email protégé] :~$ haut
Tâches : 291 au total, 1 en cours d'exécution, 290 en sommeil, 0 arrêtée, 0 zombie
%Cpu(s) : 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0salut, 0.0si, 0.0er
Mémoire MiB : 7880.6 au total, 1259.9 gratuits, 3176 d'occasion, 3444.4 buff/cache
Échange de MiB : 2048.0 au total, 2048.0 gratuit, 0.0 utilisé. 4091.8 dispo Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMANDE
3241 jim 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 chromes
3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 chromés
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és
3937 jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 chromés
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 gnomes+
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és
3388 jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 chromés
3409 jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 chromés
3441 jim 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 chromés
… .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.

Notez quel processus consomme 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 modifiés pour leur donner moins d'importance pour le processeur.

Tuez un processus en haut : presse 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.

Renice un processus au sommet: presse r et écrivez le PID du processus que vous souhaitez affiner. 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 signifie la plus faible importance).

Lister et gérer les processus avec System Monitor

Linux a un gnome de moniteur système pour afficher les processus en cours 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 sont affichés avec les comptes 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 souhaitez faire avec le processus. Pour gérer le processus, sélectionnez les options suivantes.

Tuer un processus avec kill et killall

kill, et la commande killall est utilisée pour tuer/mettre fin à 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 nom. Voici quelques signaux couramment utilisés.

Numéro de signal Description

SIGHUP 1 Détecte le signal de raccrochage sur le terminal de contrôle.
SIGINT 2 Interprété depuis le 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 annuler 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 man 7 signal terminal.

Utilisation de la commande kill pour l'envoi du signal au processus par PID.

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

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMANDE
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 souhaitez tuer ce processus pour économiser l'utilisation du processeur, voici quelques façons de terminer ce processus avec la commande kill.

[email protégé] : ~$ 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 nom plutôt que par identifiant de processus. Il peut également tuer plus de processus que vous ne le souhaitez si vous ne faites pas attention, e.g., "killall chrome" va tuer 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 avec la commande killall ; vous n'avez qu'à taper son nom et le signal que vous souhaitez envoyer. e.g., envoyer un signal d'arrêt processus firefox en utilisant la commande killall, écrivez la commande ci-dessous.

[email protégé] : ~$ killall -9 firefox

ou alors

[email protégé] : ~$ killall SIGKILL chrome

Modification de la priorité du processus avec nice et renice

Chaque processus sur votre système Linux a une excellente valeur, et il se situe entre -19 et 20. Il a décidé quel processus obtiendrait plus d'accès CPU dans le système. Plus la valeur de nice est faible, plus un processus a accès au processus CPU. Comme -16 belles valeurs ont plus d'accès au CPU que 18 belles valeurs. Seul un utilisateur avec des privilèges root peut attribuer une valeur négative de nice. Un utilisateur normal ne peut attribuer que la valeur de « nice » entre 0 et 19. Un utilisateur régulier ne peut attribuer que des valeurs nice plus élevées et sur ses propres processus. Un utilisateur root peut définir n'importe quelle valeur intéressante pour n'importe quel processus.

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

[email protected]:~$ nice +3 chrome

Et renice le processus

[email protégé]:~$ 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.

Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...