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
WBOYavant
2024-03-10 08:04:171232parcourir

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
  • -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

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

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

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

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)
└─...

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

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

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
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
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

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
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"

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

chmod +x check_process_time.sh
./check_process_time.sh

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

定时执行脚本

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

下面是使用 cron 的例子:

# 打开定时任务编辑器
crontab -e

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

0 * * * * /path/to/check_process_time.sh

保存并退出编辑器。

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer