Heim > Computer-Tutorials > Computerwissen > So überprüfen Sie, wie lange ein Prozess unter Linux ausgeführt wurde

So überprüfen Sie, wie lange ein Prozess unter Linux ausgeführt wurde

WBOY
Freigeben: 2024-03-10 08:04:17
nach vorne
1240 Leute haben es durchsucht

Die Laufzeit eines Prozesses bezieht sich auf die Zeit, die seit dem Start des Prozesses vergangen ist.

Durch die Überprüfung der Laufzeit von Prozessen können wir feststellen, welche Prozesse im System wie lange ausgeführt wurden. Dies ist entscheidend für die Identifizierung von Problemen, die eine langsame Systemreaktion und eine hohe Systemressourcennutzung verursachen.

Wir entdecken und bewältigen diese langwierigen Prozesse rechtzeitig, was die Stabilität und Leistung des Systems verbessern kann.

So überprüfen Sie, wie lange ein Prozess unter Linux ausgeführt wurde

Verwenden Sie den ps-Befehl

Der Befehl

ps ist ein leistungsstarkes Tool zum Melden des aktuellen Status von Systemprozessen.

Durch die Kombination verschiedener Optionen können wir verschiedene Informationen über den Prozess erhalten, einschließlich der Prozesslaufzeit.

Verwenden Sie den folgenden Befehl, um die grundlegenden Informationen des Prozesses anzuzeigen, einschließlich Prozess-ID (PID), Laufzeit usw.:

ps -eo pid,cmd,etime
Nach dem Login kopieren
  • -e: Alle Prozesse anzeigen
  • -o: Geben Sie das Ausgabeformat an

In den vom obigen Befehl ausgegebenen Spalten stellt etime die Laufzeit des Prozesses dar.

Zum Beispiel:

PID CMDELAPSED
 1234 /usr/bin/example-process02:30:45
Nach dem Login kopieren

Das bedeutet, dass der Prozess mit PID 1234 example-process seit 2 Stunden, 30 Minuten und 45 Sekunden läuft.

Verwenden Sie den Top-Befehl

top ist ein Befehlszeilentool zur Echtzeitüberwachung von Systemprozessen, das eine dynamisch aktualisierte Prozessliste bereitstellt.

Führen Sie zum Starten den folgenden Befehl aus top:

top
Nach dem Login kopieren

In der top 界面,你可以按 Shift+E-Oberfläche können Sie die Tasten Umschalt+E drücken, um die Anzeige der Laufzeit des Prozesses umzuschalten.

Dadurch enthält die Prozessliste eine TIME+-Spalte, die die Gesamtlaufzeit des Prozesses anzeigt.

PID USERPRNIVIRTRESSHR S%CPU%MEM TIME+ COMMAND
1234 user 20 020001210560 8204 R 5.0 0.302:30:45 example-process
Nach dem Login kopieren

In diesem Beispiel beträgt die Laufzeit von example-process 2 Stunden, 30 Minuten und 45 Sekunden.

Verwenden Sie den pstree-Befehl

Der Befehl

pstree zeigt die Prozesshierarchie in Form eines Baumdiagramms an. Wenn wir uns den Prozessbaum ansehen, können wir uns ein klareres Bild von den Beziehungen zwischen Prozessen machen und sehen, wie lange ihre Ausführung dauert.

Führen Sie den folgenden Befehl aus, um mit pstree den Prozessbaum anzuzeigen:

pstree -p
Nach dem Login kopieren

Unter anderem zeigt die Option -p die PID des Prozesses an. Die Ausgabe könnte so aussehen:

init(1)─┬─systemd─┬─(sd-pam)
│ ├─...
│ └─(process-1)
├─(process-2)
├─(process-3)
└─...
Nach dem Login kopieren

Anhand dieser Baumstruktur können Sie jeden Prozess und seine Unterprozesse identifizieren und bei Bedarf nachvollziehen, wie lange sie bereits ausgeführt wurden.

Verwenden Sie das /proc-Dateisystem

Das /proc-Verzeichnis in Linux ist ein virtuelles Dateisystem, das Informationen über das System und die Prozesse bereitstellt.

Wir können die Details des Prozesses, einschließlich der Laufzeit, erfahren, indem wir die Datei unter /proc lesen.

Durch das Lesen der /proc/[PID]/stat-Datei können wir detaillierte Informationen zu einem bestimmten Prozess erhalten, einschließlich der Laufzeit.

Hier ist ein Beispiel:

cat /proc/1234/stat
Nach dem Login kopieren

Die Ausgabe könnte wie folgt aussehen:

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
Nach dem Login kopieren

In der Ausgabe stellt Spalte 22 (von links) die Laufzeit des Prozesses in Taktschritten dar.

Verwenden Sie htop

htop 是一个交互式的、更友好的进程查看工具,相对于传统的 top ist ein interaktives und benutzerfreundlicheres Prozessanzeigetool, das leistungsfähiger und intuitiver ist als der herkömmliche

-Befehl.

htopFühren Sie zum Starten den folgenden Befehl aus

:

htop
Nach dem Login kopieren
htopIn der

-Benutzeroberfläche können Sie mit Pfeiltasten und Funktionstasten navigieren und verschiedene Vorgänge ausführen.

F6 键,选择并启用 TIME+Drücken Sie die Taste F6, um auszuwählen und zu aktivieren

, um die Laufzeit des Prozesses anzuzeigen.

PID USERPRINIVIRTRESSHR S%CPU%MEM TIME+ COMMAND
1234 user20 020001210560 8204 R 5.0 0.302:30.45 example-process
Nach dem Login kopieren
TIME+Hier zeigt die Spalte

die Laufzeit des Prozesses im Format Stunden, Minuten und Sekunden an.

Verwenden Sie Systemd-Tools

Systemd

ist ein System- und Servicemanager, der eine Vielzahl von Tools zur Überwachung und Steuerung der auf dem System laufenden Prozesse bereitstellt.

systemctlSie können

verwenden, um Details eines bestimmten Dienstes, einschließlich der Betriebszeit, anzuzeigen, indem Sie den folgenden Befehl ausführen:

systemctl status example-service
Nach dem Login kopieren

Die Ausgabe enthält die Details des Dienstes, einschließlich der Laufzeit:

● 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
Nach dem Login kopieren
ActiveIn der Ausgabe zeigt der Abschnitt

den Aktivitätsstatus des Dienstes und die Zeit seit seinem Start an. 🎜

编写脚本自动化检查

使用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"
Nach dem Login kopieren

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

chmod +x check_process_time.sh
./check_process_time.sh
Nach dem Login kopieren

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

定时执行脚本

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

下面是使用 cron 的例子:

# 打开定时任务编辑器
crontab -e
Nach dem Login kopieren

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

0 * * * * /path/to/check_process_time.sh
Nach dem Login kopieren

保存并退出编辑器。

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie, wie lange ein Prozess unter Linux ausgeführt wurde. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:mryunwei.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage