Le terme processus est souvent inconnu de quiconque n'a pas une formation en informatique. Cependant, c'est celui qui est souvent utilisé lors de la discussion de la programmation Linux, et les processus sont essentiels au travail d'administration système.

publicité

Linux utilise également le terme travail pour faire référence à un concept très similaire. La différence est subtile mais importante, et le contrôle des tâches est un outil utile lors de l'exécution d'un environnement multitâche. Vous pouvez utiliser un certain nombre d'outils et de commandes intégrées pour jongler avec les tâches.

Qu'est-ce qu'un processus?

Au niveau le plus simple, vous pouvez considérer un processus comme l'équivalent d'un programme que vous exécutez. Il peut s'agir d'une application GUI complète telle que votre navigateur Web. Il peut s'agir d'une commande unique que vous exécutezsur la ligne de commande, comme ls . D'une manière générale, tout ce qui se passe sur votre ordinateur dépend d'un processus, en son cœur.

En réalité, une seule application peut utiliser plusieurs processus pour exécuter des tâches distinctes simultanément. Un appel en ligne de commande à l'aide de canaux, tels que:

 $ grep "erreur" log.txt | wc -l

exécutera deux processus distincts, un pour chaque segment de tuyau.

publicité

Comment les processus commencent

Les processus sont soit créés explicitement par vous, l'utilisateur, soit automatiquement par votre ordinateur lui-même. En fait, vous pouvez déjà avoir des centaines de processus en cours d'exécution dès que vous avez démarré.

Les processus peuvent engendrer d'autres processus et init, le premier processus qui démarre sur de nombreux systèmes Linux traditionnels, est en fin de compte responsable du démarrage de chaque processus qui s'exécute.

Comment se terminent les processus

De nombreux processus sont des commandes de courte durée qui exécutent une tâche puis s'arrêtent. Saisie ls dans un terminal démarrera, exécutera et arrêtera un processus en quelques fractions de seconde.

Certains processus, tels que démons , exécutez en continu. Le cron le processus, par exemple, exécute périodiquement d'autres commandes pendant que son ordinateur hôte est en cours d'exécution.

Identifier un processus

Le système d'exploitation OS attribue un identifiant unique à chaque processus. Il est connu sous le nom de PID ou ID de processus. Cette valeur est généralement un nombre de 1 à 5 chiffres et les processus futurs peuvent réutiliser le PID d'un processus précédent qui a été entièrementnettoyé.

publicité

Les PID sont utilisés par le système d'exploitation lui-même de différentes manières. Un bon exemple est le / proc répertoire qui stocke des informations sur les processus en cours d'exécution.

En relation: Quels sont ces dossiers dans votre répertoire racine Linux?

Qu'est-ce qu'un emploi?

Dans la terminologie Linux, a travail est un programme géré par le shell. Il se compose généralement d'un processus, mais peut en utiliser plusieurs. Lorsque vous entrez une commande dans votre terminal, un processus est généré pour exécuter la commande et un travail est créé pour aider à contrôler la commandependant qu'il fonctionne.

Gestion des travaux

Si vous exécutez une tâche au premier plan, vous pouvez l'interrompre en appuyant sur Contrôle + C ^ C. En règle générale, cela entraînera l'arrêt du processus et ramènera le terminal à une invite.

 100 $ de sommeil
^ C
$

Vous pouvez également appuyer sur Contrôle + Z ^ Z arrêtera l'exécution de la tâche, mais ne la provoquera pas. Vous pouvez y penser plus comme une pause.

publicité
 100 $ de sommeil
^ Z
[1] + sommeil arrêté 100
$

Notez que le shell vous indique le numéro du travail entre crochets lorsque vous l'arrêtez. Cela peut être utilisé avec d'autres commandes pour contrôler le travail. Par exemple, vous pouvez redémarrer un travail en l'amenant au premier plan en utilisant fg :

 $ fg% 1
dormir 100

Vous pouvez utiliser une commande similaire pour redémarrer le travail en arrière-plan:

 $ bg% 1
[1] + sommeil 100 &
$

Cela ramènera le contrôle à une invite, afin que vous puissiez continuer avec d'autres travaux pendant que le travail s'exécute. Si vous voulez qu'un travail s'exécute en arrière-plan dès que vous le démarrez, ajoutez un & à la fin de la commande:

 100 $ sommeil &
[1] 61087
$

Dans ce cas, le shell imprime le numéro de travail entre parenthèses et le PID par la suite.

Outils communs pour l'interrogation des processus et des tâches

Processus de surveillance

L'une des commandes les plus utiles pour obtenir des informations sur les processus est haut . Le programme affiche une vue interactive en temps réel des processus en cours d'exécution. C'est l'équivalent en ligne de commande des programmes graphiques tels que le Moniteur système de GNOME ou le Gestionnaire de tâches Windows.

publicité

Vous pouvez démarrer le programme supérieur avec la simple commande, haut :

Une zone d'en-tête affiche la charge du processeur et l'utilisation de la mémoire. En dessous, le haut montre un tableau contenant un processus par ligne. Les détails incluent le PID, la puissance CPU disponible utilisée par le processus et le temps CPU total qu'il a consommé. Informationsest actualisé automatiquement, toutes les trois secondes par défaut.

Il existe de nombreuses options et commandes interactives qui peuvent être utilisées pour modifier le comportement de top. Utilisez le haut homme commande pour en savoir plus:

Obtenir un instantané des processus actifs

abréviation de état du processus , le ps la commande répertorie les processus. Différentes options permettent divers filtrages et ajustements des détails affichés. Par défaut, ps montre les processus qui sont attachés à un terminal et ont été lancés par l'utilisateur actuel. En d'autres termes, la plupart des commandes que vous avez tapées sur leligne de commande.

publicité

Avec la tâche précédente toujours en arrière-plan, la sortie pourrait ressembler un peu à ceci:

 $ ps
PID TTY TIME CMD
35564 ttys000 0: 00.00 sommeil 100
73998 ttys000 0: 00.43 -bash

Comme pour top, ps a de nombreuses options pour contrôler son comportement, et celles-ci peuvent être découvertes via homme ps :

Deux des plus utiles, qui sont souvent combinées, sont -e et -f . Ils affichent respectivement les processus appartenant à tous les utilisateurs et des colonnes supplémentaires. Par exemple:

 $ ps -ef
UID PID PPID C STIME TTY TIME CMD
racine 1 0 0 2020? 00:11:22 / sbin / init
racine 2 0 0 2020? 00:00:00 [kthreadd]
...

Liste des travaux d'arrière-plan

Le emplois la commande répertorie les tâches en arrière-plan dans le shell actuel. Pour démontrer son utilisation, lancez une tâche de longue durée en arrière-plan:

 $ du -skh ~> /tmp/du.txt 2> / dev / null &
[1] 61167

Cette commande calcule l'espace disque total utilisé par votre répertoire personnel, redirigeant sa sortie vers un fichier temporaire.

publicité
 $ emplois
[1] + Exécution de du -skh ~> /tmp/du.txt 2> / dev / null &

Finalement, lorsque le travail est terminé, une ligne apparaîtra dans votre terminal semblable à:

 [1] + Sortie 1 du -skh ~> /tmp/du.txt 2> / dev / null

Envoi de signaux pour terminer les processus

Si vous avez identifié un processus qui se comporte mal, vous devrez peut-être le tuer. Bien que cela semble radical, le tuer la commande fait partie intégrante de la boîte à outils d'un administrateur système. Elle peut envoyer l'un de plusieurs signaux, qui sont des notifications standard pour contrôler le comportement du processus. Certains signaux courants à envoyer sont SIGINT, SIGTSTP, SIGTERM et SIGKILL.

SIGINT équivaut à appuyer sur ^ C. SIGTSTP équivaut à appuyer sur ^ Z. SIGTERM et SIGKILL sont tous les deux des moyens d'arrêter un processus. Le premier envoie une requête au processus, lui donnant une chance de s'arrêter correctement.Ce dernier est une méthode plus extrême pour forcer un processus à s'arrêter et doit être utilisé en dernier recours.

publicité

La commande kill peut également fonctionner avec des jobs. Par exemple:

 $ emplois
[1] + Running sleep 100 &
$ tuer% 1
[1] + Terminé: 15 sommeil 100

Lire la suite: Façons de tuer les programmes qui ne répondent pas sous Linux

Travailler avec des processus et des travaux sous Linux

Les processus et les tâches sont des concepts difficiles à comprendre, en particulier la différence entre eux. Cependant, ils sont l'une des premières étapes vers la compréhension de l'administration système sous Linux. Les tâches sont un moyen pratique d'exécuter simultanément différentes commandes à partir du shell.

Les processus sont un concept de niveau inférieur qui peut également être manipulé et sont au cœur de chaque programme qui s'exécute sur un ordinateur.

10 conseils de durcissement Linux pour les administrateurs système débutants

Faire vos premiers pas en tant qu'administrateur système Linux? Voici les astuces de renforcement du système d'exploitation dont vous avez besoin pour sécuriser vos systèmes.

À propos de l'auteur
publicité