Gestion des processus dans Ubuntu Linux

Gestion des processus dans Ubuntu Linux
La gestion des processus dans Linux est un sujet important à apprendre et à comprendre, car il s'agit d'un système d'exploitation multitâche et a de nombreux processus en cours en même temps. Linux fournit de nombreux outils pour gérer les processus, comme la liste des processus de fonctionnement, les processus de mise à mort, l'utilisation du système de surveillance, etc. Dans Linux, chaque processus est représenté par son processus d'identification (PID). Il existe d'autres attributs au processus comme 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 bien. Dans Linux, les processus peuvent être gérés avec des commandes comme PS, PSTREE, PGREP, PKILL, LSOF, TOP, Nice, Renice et Kill, etc.

Processus

L'exécution d'une instance d'un programme est appelée un processus. Dans Linux, le processus ID (PID) est utilisé pour représenter un processus distinctif 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 commencent dans le terminal et 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 pouvez interagir avec elle, 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 à fonctionner en arrière-plan; Cela vous fera gagner du temps et vous pourrez commencer un autre processus. Pour la liste des processus exécutés en arrière-plan, utilisez les travaux de la commande.'Il affichera tous les processus en cours d'exécution en arrière-plan.

Par exemple, la mise à niveau est un long processus de Linux. Cela prend trop de temps, et si vous voulez faire d'autres choses pendant que le système est à niveau, utilisez la commande d'arrière-plan.

Ubuntu @ Ubuntu: ~ $ 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.

Ubuntu @ Ubuntu: ~ $ Jobs
[1] + Running Sudo apt-get upgrade -y &

Processus de premier plan

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

Vous pouvez apporter n'importe quel processus d'arrière-plan répertorié dans les travaux au premier plan en tapant la commande «FG» suivie du numéro de processus d'arrière-plan.

ubuntu @ ubuntu: ~ $ fg% 1
Sudo apt-get upgrade -y

Et si vous souhaitez apporter ce processus à l'arrière-plan, cette commande.

ubuntu @ ubuntu: ~ $ bg% 1

Listing et gestion des processus avec la commande ps

Le processus d'inscription avec la commande PS est l'un des moyens les plus anciens de visualiser les processus en cours d'exécution du terminal. Tapez la commande PS pour indiquer les processus en cours d'exécution et la quantité de ressources système qu'ils utilisent et qui les exécute.

ubuntu @ ubuntu: ~ $ ps u
Utilisateur PID% CPU% mem vsz rss tty stat start Time Commande
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 / 0 R + 17:19 0:00 PS U
… Snip…

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 montre le processeur de pourcentage de processeur et% MEM montre une utilisation de la mémoire d'accès aléatoire. Pour tuer un processus, tapez.

ubuntu @ ubuntu: ~ $ kill [process id (pid)]]

ou

Ubuntu @ Ubuntu: ~ $ kill -9 [ID de processus (PID)]

Utilisez la commande PS AUX pour voir tous les processus en cours d'exécution et ajoutez un tuyau pour le voir dans l'ordre.

Ubuntu @ Ubuntu: ~ $ ps Aux | moins

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

ubuntu @ ubuntu: ~ $ ps -eo pid, utilisateur, uid,% CPU,% mem, vsz, rss, commandant
PID User UID% CPU% MEM VSZ RSS Commande
1 racine 0 0.dix.1 167848 11684 Système
3032 Jim 1000 16.5 4.7 21744776 386524 Chrome
… Snip…

Options de commande PS.

U l'option est utilisée pour répertorier les processus par les utilisateurs.

ubuntu @ ubuntu: ~ $ ps u

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

ubuntu @ ubuntu: ~ $ ps f

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

ubuntu @ ubuntu: ~ $ ps x

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

ubuntu @ ubuntu: ~ $ ps e

Une option est utilisée pour répertorier tous les processus avec le terminal.

ubuntu @ ubuntu: ~ $ ps a

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

ubuntu @ ubuntu: ~ $ ps v

Flags pour la commande ps.

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

ubuntu @ ubuntu: ~ $ ps -e

-U Flag est utilisé pour voir les processus s'exécuter comme racine.

ubuntu @ ubuntu: ~ $ ps -u

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

ubuntu @ ubuntu: ~ $ ps -f

-o Flag est utilisé pour répertorier les processus dans la colonne souhaitée.

ubuntu @ ubuntu: ~ $ ps -o
ptree

PSTREE est une autre commande pour répertorier les processus; il montre la sortie dans un format d'arbre.

ubuntu @ ubuntu: ~ $ pStree

Options pour la commande PSTREE

-n est utilisé pour les processus de tri par PID.

ubuntu @ ubuntu: ~ $ pStree -n

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

ubuntu @ ubuntu: ~ $ pStree -h [pid]
ubuntu @ ubuntu: ~ $ pStree -H 6457

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

ubuntu @ ubuntu: ~ $ pStree -a

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

ubuntu @ ubuntu: ~ $ pStree -g

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

ubuntu @ ubuntu: ~ $ pStree -s [pid]
ubuntu @ ubuntu: ~ $ pStree -S 6457

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

ubuntu @ ubuntu: ~ $ pStree [nom d'utilisateur]
Ubuntu @ Ubuntu: ~ $ PSTREE Jim
pgrep

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

ubuntu @ ubuntu: ~ $ pgrep [option] [modèle]
ubuntu @ ubuntu: ~ $ pgrep -u jim chrome
Options de commande pgrep

-je est utilisé pour rechercher des cas insensibles

ubuntu @ ubuntu: ~ $ pgrep -i firefox

-d est utilisé pour délimiter la sortie

ubuntu @ ubuntu: ~ $ pgrep -u jim -d:

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

ubuntu @ ubuntu: ~ $ pgrep -u jim

-un est utilisé pour la liste des processus aux côtés de leurs commandes

ubuntu @ ubuntu: ~ $ pgrep -u jim -a

-c est utilisé pour montrer le nombre de processus de correspondance

ubuntu @ ubuntu: ~ $ pgrep -c -u jim

-l est utilisé pour les processus d'inscription et leur nom

ubuntu @ ubuntu: ~ $ pgrep -u jim -l
pkill

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

ubuntu @ ubuntu: ~ $ pkill [options] [motifs]
ubuntu @ ubuntu: ~ $ pkill -9 chrome
Options pour la commande pkill

-signal est utilisé pour envoyer un signal e.g. Sigkill, Sigterm, etc.

Ubuntu @ Ubuntu: ~ $ pkill - SIGNAL SIGTERM VSCODE

-Bracelet est utilisé pour recharger un processus

ubuntu @ ubuntu: ~ $ pkill -hup syslogd

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

ubuntu @ ubuntu: ~ $ pkill -f “ping 7.7.7.7"

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

ubuntu @ ubuntu: ~ $ pkill -u jim

-je est utilisé pour la mise à mort insensible au processus du processus par pkill.

ubuntu @ ubuntu: ~ $ pkill -i firefox

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

ubuntu @ ubuntu: ~ $ pkill -9 chrome

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

ubuntu @ ubuntu: ~ $ pkill -15 vlc
LSOF (liste des fichiers ouverts)

Cet utilitaire de ligne de commande est utilisé pour la liste des 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 répertorier tous les fichiers ouverts.

ubuntu @ ubuntu: ~ $ 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 à mémoire de mémoire, MMAP signifie périphériques mappés de mémoire, Reg représente un fichier régulier, 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 commande LSOF.

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

ubuntu @ ubuntu: ~ $ lsof -c chrome

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

ubuntu @ ubuntu: ~ $ lsof -u jim

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

ubuntu @ ubuntu: ~ $ lsof -i

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

ubuntu @ ubuntu: ~ $ lsof + d / home /

-p est utilisé pour la liste des fichiers ouverts par un processus.

ubuntu @ ubuntu: ~ $ lsof -p 1342

Listing et gestion du processus avec la commande supérieure

Avec la commande supérieure, 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 supérieure fournit également des informations sur votre système, comme la durée du système ou le nombre d'utilisateurs qui sont attachés au système et combien de processus fonctionnent, combien de processeur et de RAM sont utilisés, et une liste de chacun processus.

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

Ubuntu @ Ubuntu: ~ $ TOP
Tâches: 291 total, 1 course, 290 sommeil, 0 arrêté, 0 zombie
% CPU (s): 2.3US, 0.3Sy, 0.0ni, 97.0id, 0.3wa, 0.0Hi, 0.0si, 0.0e
MIB MEM: 7880.6 au total, 1259.9 GRATUIT, 3176 Utilisé, 3444.4 buff / cache
MIB Swap: 2048.0 total, 2048.0 gratuit, 0.0 utilisé. 4091.8 dispositif mem
PID USER PR NI VIRS RES SHR S% CPU% MEM TIME + COMMANDE
3241 Jim 20 0 20.7G 33512 10082 S 1.7 4.2 0:54.24 chrome
3327 Jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 Chrome
2920 Jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 Chrome
3423 Jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 Chrome
3030 Jim 20 0 458740 114044 66248 S 0.7 1.4 3h00.47 Chrome
3937 Jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 Chrome
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 Chrome
3388 Jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 Chrome
3409 Jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 chrome
3441 Jim 20 0 16.5G 156396 89700 S 0.3 1.9 0:25.70 Chrome
… .couper… .

Vous pouvez également effectuer des actions avec la commande supérieure 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 exécuté par un certain utilisateur.
  • M En appuyant sur «M», vous pouvez organiser par utilisation de la RAM plutôt que par utilisation du processeur.
  • P En appuyant sur «P», vous pouvez trier par utilisation du processeur.
  • 1 en appuyant sur «1» commutateur entre l'utilisation des processeurs s'il y en a plus d'un.
  • R En appuyant sur «R», vous pouvez rendre votre tri de sortie inversé.
  • H En appuyant sur «H», vous pouvez aller pour aider et appuyer sur n'importe quelle touche pour retourner.

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

Tuez un processus en haut: Presse k Et écrivez l'identifiant de processus que vous voulez tuer. Puis type 15 ou 9 pour tuer normalement ou immédiatement; Vous pouvez également tuer un processus avec un commandement de tueries ou de killall.

Renice un processus en haut: Presse r Et écrivez le PID du processus que vous voulez être réé partir. Il vous demandera de taper le PID du processus, puis la valeur de la nice que vous souhaitez donner ce processus entre -19 et 20 (-19 signifie la plus haute importance et 20 signifie une importance la plus basse).

Processus de répertage et de gestion avec moniteur système

Linux a un gnome de moniteur système pour afficher les processus en cours d'exécution plus dynamiquement. 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 les cliquant avec le bouton droit, vous pouvez tuer, arrêter ou réintégrer le processus.

Les processus en cours sont affichés avec des comptes d'utilisateurs dans l'ordre alphabétique. Vous pouvez trier les processus par tous les titres de terrain comme le processeur, la 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, cliquez avec le bouton droit sur eux et sélectionnez l'option que vous souhaitez 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 de mémoire- Afficher les cartes de mémoire système pour montrer quelle bibliothèque et d'autres composants sont utilisés en mémoire pour le processus.
  • Fichier ouvert- Affiche quels fichiers sont ouverts par le processus.
  • Changer la priorité- Affichez une barre latérale à partir de laquelle vous pouvez rénover le processus avec les options de très haut à très bas et personnalisé.
  • Arrêt- Passe le processus jusqu'à ce que vous sélectionniez pour continuer.
  • Continuer- redémarre un processus en pause.
  • Tuer- Force tue instantanément un processus.

Tuer un processus avec Kill et Killall

La commande Kill et 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, comme indiquer un processus pour continuer, mettre fin ou relier les fichiers de configuration, etc. Les signaux peuvent être écrits dans les deux manières par des chiffres ou par nom. Voici quelques signaux couramment utilisés.

Description du numéro de signal

SIGHUP 1 détecte le signal de raccrochage sur le contrôle du terminal.
Sigint 2 interprété à partir du clavier.
Sigquit 3 quittez le clavier.
Sigill 4 instructions illégales.
Sigtrap 5 est utilisé pour tracer une trapie.
Sigabrt 6 est utilisé pour abandonner le signal de l'avort (3).
Sigkill 9 est utilisé pour envoyer un signal de mise à mort.
SIGTERM 15 est utilisé pour envoyer un signal de terminaison.
SIGCONT 19,18,25 est utilisé pour poursuivre un processus s'il est arrêté.
Sigstop 17,19,23 est utilisé pour l'arrêt des 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 Type Man 7 Terminal du signal.

Utilisation de la commande kill pour l'envoi du signal à traiter par PID.

Notez le processus auquel vous souhaitez envoyer un signal de mise à mort. Vous pouvez trouver l'ID de processus (PID) par PS ou la commande TOP.

PID USER PR NI VIRS RES SHR S% CPU% MEM TIME + COMMANDE
7780 Jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 TOP

Le premier processus consomme 33.3% du CPU. Si vous voulez tuer ce processus pour enregistrer l'utilisation du processeur, voici quelques façons de mettre fin à ce processus avec la commande kill.

ubuntu @ ubuntu: ~ $ kill 7780
ubuntu @ ubuntu: ~ $ kill -15 7780 ou $ kill -sigterm 7780
ubuntu @ ubuntu: ~ $ 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 à rechercher un ID de processus; Vous pouvez envoyer un signal de mise à mort à un processus par son nom plutôt qu'à un 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" tuera tous les processus chromés, y compris ceux que vous ne voulez pas tuer. Parfois, il est utile de tuer des 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 souhaitez envoyer. e.g., Envoyer un processus de signalisation de kill firefox à l'aide de la commande killall, écrivez la commande ci-dessous.

ubuntu @ ubuntu: ~ $ killall -9 firefox

ou

ubuntu @ ubuntu: ~ $ killall Sigkill Chrome

Changer 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 au processeur dans le système. Plus la valeur de Nice est faible, plus un processus a accès au processus CPU. Comme -16 Nice Valeurs ont plus accès au CPU que 18 Nice Valeurs. Seul un utilisateur avec des privilèges racine 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 affecter que des valeurs belles plus élevées et sur ses propres processus. Un utilisateur racine peut définir n'importe quelle bonne valeur sur n'importe quel processus.

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

ubuntu @ ubuntu: ~ $ sympa +3 chrome

Et Renice le processus

Ubuntu @ Ubuntu: ~ $ 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 les gérer augmente la vitesse et les performances de votre système et vous donne un meilleur environnement pour exécuter tous les processus que vous souhaitez plus efficacement.