[LINUX] Processus et travaux étudiés

J'ignorais les processus et les emplois, alors j'ai fait des recherches.

Qu'est-ce qu'un processus

Un processus est un programme qui s'exécute en mémoire.

Chaque processus reçoit un ID unique appelé ID de processus, qui permet au processus d'être géré de manière appropriée. L'ID de processus ne change pas tant que le processus n'est pas terminé.

Le processus a un utilisateur d'exécution défini comme le propriétaire du fichier et ne peut pas faire fonctionner les processus d'autres personnes.

Lorsqu'un nouveau processus est créé, un autre processus est créé à partir du processus existant. Le processus d'origine est appelé processus parent et le processus créé est appelé processus enfant. À titre d'exemple concret, lorsque la commande ls est exécutée, le processus parent devient le shell et le processus enfant devient le processus de la commande ls.

Sous Linux, en plus du processus exécuté par l'utilisateur connecté, le processus de gestion du système Linux lui-même est exécuté depuis le début. Beaucoup d’entre eux fonctionnent avec les privilèges de superutilisateur

commande ps

Une commande qui affiche le processus en cours d'exécution. Lorsqu'il est exécuté sans options, seuls les processus exécutés dans le terminal actuel sont affichés.

Exemple d'exécution

PID TTY           TIME CMD
89124 ttys000    0:00.05 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server <=Processus Iterm
89126 ttys000    0:00.32 -zsh <=lié à zsh
88296 ttys001    0:01.40 /usr/local/bin/zsh -l <=lié à zsh

options pour la commande ps

Présentation d'un exemple de la commande ps

option x

Afficher tous les processus en cours d'exécution par l'utilisateur actuel

une option

Ajoutez l'option a en plus de l'option x pour voir tous les processus en cours d'exécution sur votre système, pas seulement le vôtre

option u

Il affiche également les taux d'utilisation du processeur et de la mémoire, etc.

Options fréquemment utilisées

Une combinaison d'options de machine fréquemment utilisées lors de l'exécution de commandes ps

option ux

Afficher tous les processus de l'utilisateur qui a exécuté la commande ps avec des informations détaillées Faire

option aux

Afficher tous les processus utilisateur avec des informations détaillées

Qu'est-ce qu'un travail

Une unité de traitement lorsqu'elle est vue depuis le shell est appelée un travail (un processus est une unité de traitement lorsqu'il est visualisé depuis le noyau). Une ligne entrée dans la ligne de commande du shell devient une tâche

Exemple d'exécution history | grep git

Les processus ont un ID de processus unique à l'échelle du système, mais les travaux ont un numéro de travail pour chaque shell. En d'autres termes, si plusieurs terminaux sont ouverts et que plusieurs shells sont utilisés en même temps, les numéros de travail seront dupliqués.

commande jobs

Commande pour afficher la liste des travaux en cours

Statut de l'emploi

premier plan

Un état dans lequel le traitement est exécuté pendant que l'utilisateur fonctionne de manière interactive

commande fg

Commande pour exécuter une tâche au premier plan

Contexte

Un état dans lequel le traitement est exécuté sans que l'utilisateur n'interagisse avec lui.

commande bg

Commande pour mettre le traitement en arrière-plan

Arrêtez

Un état dans lequel le traitement est temporairement suspendu Ctrl + z Arrêter temporairement le traitement

Résumé des transitions d'état de travail

commande kill

Une commande utilisée pour terminer un processus ou une tâche en arrière-plan. Pour être exact, la commande "envoyer un signal". Un signal est un signal envoyé à un processus.

Il se comporte de diverses manières telles que «fin», «arrêt» et «redémarrage» selon le type de signal. En envoyant un signal à un processus en cours, il est possible de communiquer entre les processus.

Signal envoyé par la commande kill

Le type de signal envoyé par la commande kill peut être spécifié par kill- <nom du signal>. Si le nom du signal est omis, le signal TERM est envoyé comme valeur par défaut. Autrement dit, les deux commandes suivantes ont la même signification.

kill 100 kill =TERM 100

TERM signifie terminer.

De plus, le signal a un numéro de signal et les options peuvent être spécifiées par le numéro de signal. Le numéro de signal de TERM est 15, et "kill -15 100" a la même signification que la commande ci-dessus.

Vous pouvez vérifier le type de signal avec kill -l

$ kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

Ctrl + z envoie un signal TSTP (arrêt) et Ctrl + c envoie un signal INT (fin) pour un travail au premier plan.

Recommended Posts

Processus et travaux étudiés
À propos des fichiers et des processus LINUX