Maison > tutoriels informatiques > connaissances en informatique > Comment vérifier depuis combien de temps un processus est exécuté sous Linux

Comment vérifier depuis combien de temps un processus est exécuté sous Linux

WBOY
Libérer: 2024-03-10 08:04:17
avant
1250 Les gens l'ont consulté

Le temps d'exécution d'un processus fait référence au temps qui s'est écoulé depuis le démarrage du processus.

Vérifier la durée d'exécution des processus peut nous aider à déterminer quels processus du système sont en cours d'exécution depuis combien de temps. Ceci est essentiel pour identifier les problèmes qui entraînent une réponse lente du système et une utilisation élevée des ressources système.

Nous découvrons et traitons ces processus de longue durée dans le temps, ce qui peut améliorer la stabilité et les performances du système.

Comment vérifier depuis combien de temps un processus est exécuté sous Linux

Utilisez la commande ps

La commande

ps est un outil puissant pour signaler l'état actuel des processus système.

En combinant différentes options, nous pouvons obtenir diverses informations sur le processus, y compris la durée d'exécution du processus.

Utilisez la commande suivante pour afficher les informations de base du processus, y compris l'ID du processus (PID), la durée d'exécution, etc. :

ps -eo pid,cmd,etime
Copier après la connexion
  • -e : Afficher tous les processus
  • -o : Spécifiez le format de sortie

Dans les colonnes générées par la commande ci-dessus, etime représente la durée d'exécution du processus.

Par exemple :

PID CMDELAPSED
 1234 /usr/bin/example-process02:30:45
Copier après la connexion

Cela signifie que le processus avec le PID 1234 example-process dure depuis 2 heures, 30 minutes et 45 secondes.

Utilisez la commande supérieure

top est un outil de ligne de commande pour la surveillance en temps réel des processus système, fournissant une liste de processus mise à jour dynamiquement.

Exécutez la commande suivante pour démarrer top : 

top
Copier après la connexion

Dans l'interface top 界面,你可以按 Shift+E, vous pouvez appuyer sur les touches Shift+E pour changer l'affichage du temps d'exécution du processus.

Cela fera que la liste des processus contiendra une colonne TIME+ indiquant la durée totale d'exécution du processus.

PID USERPRNIVIRTRESSHR S%CPU%MEM TIME+ COMMAND
1234 user 20 020001210560 8204 R 5.0 0.302:30:45 example-process
Copier après la connexion

Dans cet exemple, la durée d'exécution de example-process est de 2 heures, 30 minutes et 45 secondes.

Utilisez la commande pstree

La commande

pstree affiche la hiérarchie des processus sous la forme d'un diagramme arborescent. En examinant l'arborescence des processus, nous pouvons avoir une image plus claire des relations entre les processus et voir combien de temps ils mettent à s'exécuter.

Exécutez la commande suivante pour utiliser pstree pour afficher l'arborescence des processus :

pstree -p
Copier après la connexion

Parmi eux, l'option -p affiche le PID du processus. Le résultat pourrait ressembler à ceci :

init(1)─┬─systemd─┬─(sd-pam)
│ ├─...
│ └─(process-1)
├─(process-2)
├─(process-3)
└─...
Copier après la connexion

En visualisant cette arborescence, vous pouvez identifier chaque processus et ses sous-processus et comprendre depuis combien de temps ils sont exécutés si nécessaire.

Utiliser le système de fichiers /proc

Le répertoire /proc sous Linux est un système de fichiers virtuel qui fournit des informations sur le système et les processus.

Nous pouvons obtenir les détails du processus, y compris la durée d'exécution, en lisant le fichier sous /proc.

En lisant le fichier /proc/[PID]/stat, nous pouvons obtenir des informations détaillées sur un processus spécifique, y compris la durée d'exécution.

Voici un exemple :

cat /proc/1234/stat
Copier après la connexion

Le résultat peut être le suivant :

1234 (example-process) S 0 1234 1234 0 -1 4194560 385 0 0 0 0 0 0 0 20 0 1 0 12345678 1024 18446744073709551615 134512640 134513319 4294956704 18446744073709551615 135481464 0 0 0 0 17 1 0 0 0 0 0 0 0 0 0
Copier après la connexion

Dans le résultat, la colonne 22 (en partant de la gauche) représente le temps d'exécution du processus en ticks d'horloge.

Utilisez htop

htop 是一个交互式的、更友好的进程查看工具,相对于传统的 top est un outil de visualisation de processus interactif et plus convivial, plus puissant et intuitif que la commande

traditionnelle.

htopExécutez la commande suivante pour démarrer

 : 

htop
Copier après la connexion
htopDans l'interface

, vous pouvez utiliser les touches fléchées et les touches de fonction pour naviguer et effectuer diverses opérations.

F6 键,选择并启用 TIME+Appuyez sur la touche F6 pour sélectionner et activer

pour afficher la durée d'exécution du processus.

PID USERPRINIVIRTRESSHR S%CPU%MEM TIME+ COMMAND
1234 user20 020001210560 8204 R 5.0 0.302:30.45 example-process
Copier après la connexion
TIME+Ici, la colonne

affiche la durée d'exécution du processus au format heures, minutes et secondes.

Utilisez les outils Systemd

Systemd

est un gestionnaire de système et de services qui fournit une variété d'outils pour surveiller et contrôler les processus exécutés sur le système.

systemctlVous pouvez utiliser

pour afficher les détails d'un service spécifique, y compris la disponibilité, en exécutant la commande suivante :

systemctl status example-service
Copier après la connexion

Le résultat contient les détails du service, y compris la durée d'exécution :

● example-service.service - Example Service
 Loaded: loaded (/etc/systemd/system/example-service.service; enabled; vendor preset: enabled)
 Active: active (running) since Mon 2024-03-01 12:00:00 UTC; 2h 30min ago
 Main PID: 1234 (example-process)
Tasks: 1 (limit: 4915)
 Memory: 10.5M
 CGroup: /system.slice/example-service.service
 └─1234 /usr/bin/example-process
Copier après la connexion
ActiveDans le résultat, la section

affiche l'état d'activité du service et le temps écoulé depuis son démarrage. 🎜

编写脚本自动化检查

使用Shell脚本

创建一个 Shell 脚本文件,比如 check_process_time.sh,并添加以下内容:

#!/bin/bash

# 设置要检查的进程名称
process_name="example-process"

# 获取进程运行时间
process_time=$(ps -eo cmd,etime | grep "$process_name" | awk '{print $NF}')

echo "Process $process_name has been running for: $process_time"
Copier après la connexion

保存脚本文件后,赋予执行权限并运行:

chmod +x check_process_time.sh
./check_process_time.sh
Copier après la connexion

脚本将输出指定进程的运行时间,方便用户定期执行以监控进程状态。

定时执行脚本

使用 cron 或 systemd 的定时任务功能,你可以定期执行上述脚本,以便及时了解进程的运行时间。

下面是使用 cron 的例子:

# 打开定时任务编辑器
crontab -e
Copier après la connexion

添加以下行来每小时执行一次脚本:

0 * * * * /path/to/check_process_time.sh
Copier après la connexion

保存并退出编辑器。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:mryunwei.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal