Gestion des processus et des tâches Linux (commande de processus d'affichage, processus de contrôle, gestion des tâches planifiées ponctuelles et périodiques)
Un programme est une collection statique de code machine exécutable et de données (code stocké de manière statique dans un fichier) stockées sur un support de stockage externe (tel qu'un disque dur, un CD)
Un processus est un programme informatique qui est exécuté dynamiquement dans le processeur et la mémoire
Dans le système Linux, un ou plusieurs processus peuvent être créés après le démarrage de chaque programme
1. Afficher les informations de processus-ps
La commande ps est l'outil de visualisation de processus le plus courant dans les systèmes Linux. Elle est principalement utilisée pour afficher des instantanés statiques contenant des informations complètes sur chaque processus en cours d'exécution.
Grâce à différentes options de commande, vous pouvez afficher de manière sélective les informations de processus
1.1 Méthode 1: ps -aux
a: Afficher toutes les informations de processus sous le terminal actuel, y compris les processus d'autres utilisateurs. Lorsqu'il est combiné avec l'option "x", il affichera toutes les informations de processus dans le système
u: Sortie des informations de processus dans un format orienté utilisateur
x: afficher les informations process de l'utilisateur actuel dans tous les terminaux
Les informations de processus seront affichées sous la forme d'une simple liste
La quantité de mémoire virtuelle utilisée par le processus (Ko)
RSS
La quantité de mémoire physique utilisée par le processus (Ko)
TYY
Le nom du terminal qui a démarré le processus; si le processus n'est pas lancé à partir du terminal, il sera affiché sous la forme "?"
STAT
L'état du processus (D: état dormant non interruptible; R: état en cours d'exécution; S: état dormant et peut être réveillé; s, processus parent; T: état arrêté, qui peut être suspendu en arrière-plan ou le processus est dans un état de débogage de suivi ; Z: processus zombie, le processus est terminé, mais la plupart des programmes sont toujours en mémoire; <: état de haute priorité; +: processus de premier plan) 7
DÉBUT
Le processus a été déclenché à l'heure de début
TEMPS
Le temps pendant lequel le processus utilise réellement le CPU pour s'exécuter
COMMANDER
Commande de démarrage de processus
Explication du terme (processus zombie): un processus est terminé, mais il occupe toujours la mémoire, également appelée zombie
1.2 Méthode deux: ps -elf
e: afficher toutes les informations de processus dans le système
l: Afficher les informations de processus au format long
f: utiliser le format complet pour afficher les informations de processus
Affiche les informations de processus dans le système dans un format long et contient un contenu plus riche
##例:
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 32068 ep_pol 16:47 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
1 S root 2 0 0 80 0 - 0 kthrea 16:47 ? 00:00:00 [kthreadd]
1 S root 4 2 0 60 -20 - 0 worker 16:47 ? 00:00:00 [kworker/0:0H]
1 S root 5 2 0 80 0 - 0 worker 16:47 ? 00:00:00 [kworker/u256:0]
##省略...
nom
Explication
F
Balise système attribuée par le noyau au processus
S
Statut du processus
UID
L'utilisateur qui a lancé ces processus
PID
ID de processus du processus
PPID
Le numéro de processus du processus parent (si le processus a été démarré par un autre processus)
C
Utilisation du processeur dans le cycle de vie d'un processus
PRI
La priorité du processus (plus le nombre est élevé, plus la priorité est faible)
NI
La valeur de modestie est utilisée pour participer à la détermination de la priorité
ADDR
Adresse mémoire du processus
SZ
Si le processus est remplacé, la taille approximative de l'espace d'échange requise
WCHAN
Si le processus est en veille, affichez le nom de la fonction système en veille
ESTIMATIONS
Heure système à laquelle le processus a commencé
ATS
Terminal au démarrage du processus
TEMPS
Temps processeur cumulé requis pour exécuter le processus
CMD
Commande de démarrage de processus
Dans le système CentOs7, tty1 représente l'interface graphique, tty2-tty6 représente l'interface texte, vous pouvez utiliser Ctrl + Alt + (F1-F6) pour basculer
1.3 Autres exemples
Lors de l'exécution directe de la commande ps sans aucune option, seuls les processus ouverts dans la session utilisateur actuelle seront affichés
En raison du grand nombre de processus en cours d'exécution dans le système, vous pouvez combiner des symboles de canal et des commandes grep pour filtrer lorsque vous avez besoin d'interroger les informations d'un certain processus
Utilisez la commande ps pour afficher des informations de processus statiques et ne pouvez pas indiquer en permanence l'état de fonctionnement du processus en cours
Si vous souhaitez afficher les informations d'état de chaque processus dans un mode d'actualisation dynamique, vous pouvez utiliser cette commande
Actualiser toutes les trois secondes par défaut
2.1 Exemple de diagramme
[root@localhost ~]# top
2.2 Informations sur les tâches système (première ligne) et processus (deuxième ligne)
Information connexe
sens
/
/
18:55:08
Le temps du système
Tâches
Nombre total de processus
jusqu'à 2:07
Temps de fonctionnement du système
fonctionnement
Nombre de processus en cours
1 utilisateur
Nombre d'utilisateurs actuellement connectés
en train de dormir
Nombre de processus de sommeil
charge moyenne : 0,00,0,01,0,05
Charge du système, c'est-à-dire le nombre de tâches traitées par le système dans une unité de temps. Les trois valeurs suivantes sont la valeur moyenne de 1 minute, 5 minutes et 15 minutes jusqu'à présent
arrêté
Nombre de processus abandonnés
/
/
zombi
Nombre de processus zombies
2.3 Informations sur le processeur (troisième ligne), la mémoire (quatrième ligne) et l'espace d'échange (cinquième ligne)
Information connexe
sens
/
/
/
/
nous
Occupation de l'utilisateur
total
Espace mémoire total
total
Espace de swap total
le sien
Occupation du noyau
libre
Mémoire libre
libre
Espace swap gratuit
ni
Occupation d'horaire prioritaire
utilisé
Mémoire utilisée
utilisé
Espace d'échange utilisé
id
CPU inactif, pour comprendre le pourcentage de CPU inactif, voir principalement la partie% id
buff / cahe
La somme des tampons de la mémoire physique et de la mémoire d'échange
dispo Mem
Espace physique disponible
Washington
E / S en attente d'être occupées
/
/
/
/
salut
Occupation d'interruption de matériel
/
/
/
/
et
Occupation d'interruption de logiciel
/
/
/
/
st
Occupation de la virtualisation
/
/
/
/
2.4 Explication détaillée de chaque colonne dans la zone d'informations sur le processus
information
Explication
PID
ID de processus
UTILISATEUR
Nom d'utilisateur du propriétaire du processus
PR
priorité
NI
Valeur de modestie, une valeur négative indique une priorité élevée, une valeur positive indique une faible priorité
VIRT
La quantité totale de mémoire virtuelle utilisée par le processus, en Ko
RES
La taille de la mémoire physique utilisée par le processus, en ko
SHR
Taille de la mémoire partagée, unité Ko
S
Statut du processus
%CPU
Pourcentage de temps processeur entre la dernière mise à jour et le présent
% MEM
Le pourcentage de mémoire physique utilisé par le processus
TEMPS +
Le temps CPU total utilisé par le processus, en unités de 1/100 seconde
COMMANDER
Nom de la commande / ligne de commande
2.5 Commandes TOP couramment utilisées
commander
Explication
P
Trier par pourcentage d'utilisation du processeur
M
Trier par taille de mémoire résidente
N
Trier par heure de début
c
Bascule l'affichage du nom de la commande et de la ligne de commande complète
h
Des informations d'aide en ligne pour le programme supérieur peuvent être obtenues
k
Entrez le numéro PID du processus spécifié comme demandé et appuyez sur Entrée pour terminer le processus correspondant
q
Quitter le programme supérieur
(Numéro 1
Afficher le numéro et l'état de la CPU
3. Afficher les informations de processus-pgrep
Lorsque vous utilisez la commande ps pour interroger un certain processus, il est souvent nécessaire de combiner la commande grep pour filtrer les résultats de sortie, mais c'est très peu pratique à utiliser, et la commande "pgrep" est un outil spécial utilisé pour interroger des informations de processus spécifiques
[root@localhost ~]# vim tmpfile ##打开vim并挂起以作测试
[1]+ 已停止 vim tmpfile
[root@localhost ~]# jobs -l ##查询目标进程PID号
[1]+ 2028 停止 vim tmpfile
[root@localhost ~]# kill 2028 ##尝试直接终止进程
[root@localhost ~]# jobs -l ##查询后发现并未退出
[1]+ 2028 停止 vim tmpfile
[root@localhost ~]# kill -9 2028 ##结合“-9”选项试试,强制终止目标进程
[root@localhost ~]# jobs -l ##没了,成功
[1]+ 2028 已杀死 vim tmpfile
3.2 killall
用于结束系统中多个相关名称的进程
也可以结合“-9”选项
例:执行“killall -9 vim”命令可将所有名为vim的进程全部强行终止
[root@localhost ~]# vim testfile1
[1]+ 已停止 vim testfile1
[root@localhost ~]# vim testfile2
[2]+ 已停止 vim testfile2
[root@localhost ~]# vim testfile3
[3]+ 已停止 vim testfile3
[root@localhost ~]# jobs -l
[1] 2130 停止 vim testfile1
[2]- 2131 停止 vim testfile2
[3]+ 2132 停止 vim testfile3
[root@localhost ~]# killall -9 vim
[1] 已杀死 vim testfile1
[2]- 已杀死 vim testfile2
[3]+ 已杀死 vim testfile3
1.2 Les paramètres par défaut du système, situés dans le répertoire: /etc/cron.*/
Une fois le package crontabs installé, certains répertoires de tâches planifiées définis par le système par défaut seront promus dans ce répertoire, et le travail effectué par le système chaque heure et chaque jour est défini.
1.3 Paramètres définis par l'utilisateur, situés dans le fichier: / var / spool / cron /
Le plan cron défini par l'utilisateur à l'aide de la commande crontab sera enregistré dans ce répertoire (un fichier avec le même nom d'utilisateur sera généré dans ce répertoire)
2. Gérez les tâches planifiées de crontab
-u: spécifie à quel utilisateur appartient la tâche planifiée. Par défaut, elle est destinée à l'utilisateur actuel (soi-même); en général, seul l'utilisateur root est autorisé à utiliser cette option
Modifier la tâche planifiée crontab -e [-u nom d'utilisateur] (lorsqu'il n'y a pas de -u, l'objet par défaut est l'utilisateur actuel)
Afficher la tâche planifiée crontab -l [-u username]
Supprimer la tâche planifiée crontab -r [-u username]
3. Le format de la configuration des tâches crontab
Champ
La description
minute
La valeur est n'importe quel entier de 0 à 59
heure
La valeur est n'importe quel entier de 0 à 23
Date
La valeur est n'importe quel entier de 1 à 31
mois
La valeur est n'importe quel entier de 1 à 12
la semaine
La valeur est n'importe quel entier de 0 à 7, 0 ou 7 représente dimanche
commander
Commande ou script de programme à exécuter
Rappelez-vous la formule (gardez à l'esprit): jour, mois et semaine en temps partagé
4. Méthode de représentation spéciale de la valeur temporelle
"*" signifie à tout moment dans la plage
"," désigne plusieurs points temporels discrets dans un intervalle
"-" désigne une plage de temps continue
"/" indique la fréquence temporelle de l'intervalle
Étant donné qu'aucune connexion utilisateur n'est requise pour effectuer des tâches, il est recommandé d'utiliser des chemins absolus pour éviter la situation où les commandes ne peuvent pas être exécutées en raison du manque de chemins d'exécution
Lors de la définition de la tâche à exécuter toutes les minutes, le champ "minute" doit également être rempli avec une valeur de temps spécifique au lieu de la valeur par défaut "*", sinon la tâche sera exécutée toutes les minutes
5. Autre
L'option "-l" du jeu de commandes crontab permet d'afficher la liste des tâches planifiées de l'utilisateur actuel. Pour les utilisateurs root, vous pouvez également combiner l'option "-u" pour afficher les tâches planifiées des autres utilisateurs.
Lorsque vous devez supprimer une tâche planifiée, vous pouvez la modifier avec l'option "-e"
Autres exemples:
5 * * * * ls ##每个小时的第5分钟执行一次ls命令
30 5 * * * ls ##每天的5:30执行ls命令
30 7 8 * * ls ##每个月8号的7:30执行ls命令
30 5 8 6 * ls ##每个6月8号的5:30执行ls命令
30 6 * * 0 ls ##每个周日的6:30执行ls命令
30 3 10,20 * * ls ##每个月10号和20号的3:30执行ls命令
25 8-11 * * * ls ##每天8点到11点的第25分时执行ls命令
*/15 * * * * ls ##每隔15分钟执行一次ls命令
30 6 */10 * * ls ##月中的每隔10天的6:30时执行一次ls命令
Je suppose que tu aimes
Origine blog.csdn.net/weixin_51486343/article/details/110439089