Supposons que vous vous retrouviez à explorer la ligne de commande Linux pour la première fois ou à entrer dans l'administration Linux. Dans ce cas, une compréhension de bas niveau de la façon de se déplacer dans le terminal et d'effectuer des tâches de base est essentielle. Pour vous aider à saisir ces concepts, consultez mes deux articles précédents :
- 10 commandes pour démarrer avec le terminal
-
10 commandes supplémentaires pour manipuler des fichiers
Cependant, si vous vous sentez à l'aise avec ces concepts, nous approfondirons un peu vos connaissances Linux dans cet article. Nous examinerons les processus et la manière de les gérer.
Alors, qu'est-ce qu'un processus ? ?
Sous Linux, un processus est toute instance active (en cours d'exécution) d'un programme. Mais qu'est-ce qu'un programme ? ? Eh bien, techniquement, un programme est un fichier exécutable stocké sur votre machine. Chaque fois que vous exécutez un programme, vous créez un processus. Au niveau de base, c'est assez facile à gérer, et c'est ce que nous allons examiner aujourd'hui.
Ce dont vous avez besoin pour commencer
Je vous recommande de suivre sur votre machine virtuelle préférée. De cette façon, vous pouvez essayer et échouer sans conséquence (ce qui est certainement le meilleur moyen de vous sentir à l'aise au terminal).
Pour cette démo, je vais démarrer le processus de mise en veille pendant 500 secondes. Cette approche vous permet de voir le processus sans que j'apporte de modifications significatives à mon système.
[tcarrigan@client ~]$ sleep 500
^Z
[1]+ Stopped sleep 500
J'ai ensuite arrêté le processus avec Ctrl+Z afin que nous puissions utiliser notre terminal.
1. Lister les processus
Pour afficher vos processus actuellement actifs, utilisez le ps
commande :
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
3300 pts/0 00:00:00 ps
Ici, vous obtenez quelques informations sur les processus actifs sur votre système. Vous voudrez faire attention au PID (ID de processus unique), le TIME (durée d'exécution du processus) et le CMD (la commande exécutée pour lancer le processus).
2. Liste détaillée (processus)
Pour voir une liste incroyablement détaillée des processus, vous pouvez utiliser le ps aux
commande.
- a - tous les utilisateurs
- u - affiche l'utilisateur/propriétaire
- x - affiche les processus non exécutés dans le terminal (ce qui rend la sortie plutôt longue)
Vous pouvez voir la commande ici (sortie modifiée pour la longueur):
[tcarrigan@client ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tcarrig+ 3293 0.0 0.0 215292 520 pts/0 T 13:41 0:00 sleep 500
root 3380 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:1-mm_percpu_wq]
root 3381 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:3]
root 3398 0.0 0.0 0 0 ? I 13:46 0:00 [kworker/3:2-ata_sff]
root 3481 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/u8:2-flush-253:0]
root 3482 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:1-events]
root 3483 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:2]
root 3508 0.0 0.0 0 0 ? I 13:51 0:00 [kworker/3:0-ata_sff]
root 3511 0.0 0.0 18892 7732 ? S 13:52 0:00 systemd-userwork
root 3512 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3513 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3566 0.4 0.0 432792 8024 ? Ssl 13:54 0:00 /usr/libexec/fprintd
tcarrig+ 3598 0.0 0.0 228208 3948 pts/0 R+ 13:54 0:00 ps aux
3. Tuer par PID
Inévitablement, un processus se bloquera et vous devrez kill
ce. Plus vous passez de temps à la CLI, plus il est probable que vous aurez besoin du kill
commande. Le moyen le plus précis d'identifier un processus est l'ID de processus (PID).
Utilisez la syntaxe suivante :
[tcarrigan@client ~]$ kill PID
Cette commande envoie le SIGTERM signal. Cependant, si vous avez affaire à un processus bloqué, ajoutez le -9
option.
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ sudo kill -9 3293
[sudo] password for tcarrigan:
[1] Killed sleep 500
4. Tuer par nom/mot-clé
Utilisez le killall
commande pour tuer un processus par son nom. Cette commande tuera tous les processus avec le mot-clé/nom que vous spécifiez.
La syntaxe est :
[tcarrigan@client ~]$ killall sleep
Cela tuerait tout sleep
processus actifs sur le système (le -9
l'option fonctionne ici aussi). Voici un exemple :
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ killall -9 sleep
[2]- Killed sleep 500
[3]+ Killed sleep 500
Ces deux commandes suivantes vont de pair. Ils vous permettent de déplacer/gérer les commandes en arrière-plan. Je vais donner un aperçu de base de la syntaxe ci-dessous; cependant, pour un examen approfondi de ces commandes, consultez mon article précédent sur le sujet.
5. Répertorier les tâches d'arrière-plan et reprendre les tâches d'arrière-plan
Pour lister et gérer les tâches en arrière-plan, nous utiliserons le bg
commande. J'ai commencé un nouveau sleep 500
processus, puis l'a arrêté, l'envoyant en arrière-plan. Ainsi, nous le voyons répertorié lors de l'exécution de bg
ci-dessous :
[tcarrigan@client ~]$ bg
[1]+ sleep 500 &
6. Mettre l'emploi le plus récent au premier plan
Pour ce faire, nous allons utiliser le fg
commande. Cela amène le travail/processus le plus récemment exécuté au premier plan. L'exemple suivant est une continuation de la commande ci-dessus. Le sleep 500
processus qui est en arrière-plan est maintenant actif en arrière-plan. Mettons-le en lumière...
[tcarrigan@client ~]$ fg
sleep 500
Cette commande nous amène à notre dernière commande dans cette liste.
7. Mettre une tâche spécifique au premier plan
Utilisez le fg
à nouveau, mais sélectionnez une tâche spécifique à mettre au premier plan (au lieu de la plus récente). Pour ce faire, nous allons simplement ajouter le nom du travail/processus à la commande.
[tcarrigan@client ~]$ fg XXXample
Cela apporte le travail XXXample au premier plan.
[ Vous voulez tester vos compétences d'administrateur système ? Faites une évaluation des compétences aujourd'hui. ]
Conclusion
Dans Linux Command Basics d'aujourd'hui, nous avons examiné les processus et comment les gérer. Vous pouvez désormais effectuer des tâches générales de gestion des processus, de la liste et de la suppression au déplacement entre l'arrière-plan et le premier plan. S'il existe d'autres domaines d'administration Linux généraux pour lesquels vous souhaitez voir une liste de commandes dédiée, envoyez un e-mail à l'équipe à [email protected], et je ferai de mon mieux pour l'étoffer pour vous.