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.
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
-e
: Alle Prozesse anzeigen-o
: Geben Sie das Ausgabeformat anIn den vom obigen Befehl ausgegebenen Spalten stellt etime
die Laufzeit des Prozesses dar.
Zum Beispiel:
PID CMDELAPSED 1234 /usr/bin/example-process02:30:45
Das bedeutet, dass der Prozess mit PID 1234 example-process
seit 2 Stunden, 30 Minuten und 45 Sekunden läuft.
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
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
In diesem Beispiel beträgt die Laufzeit von example-process
2 Stunden, 30 Minuten und 45 Sekunden.
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
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) └─...
Anhand dieser Baumstruktur können Sie jeden Prozess und seine Unterprozesse identifizieren und bei Bedarf nachvollziehen, wie lange sie bereits ausgeführt wurden.
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
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
In der Ausgabe stellt Spalte 22 (von links) die Laufzeit des Prozesses in Taktschritten dar.
htop
是一个交互式的、更友好的进程查看工具,相对于传统的 top
ist ein interaktives und benutzerfreundlicheres Prozessanzeigetool, das leistungsfähiger und intuitiver ist als der herkömmliche
htop
Führen Sie zum Starten den folgenden Befehl aus
htop
htop
In 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
PID USERPRINIVIRTRESSHR S%CPU%MEM TIME+ COMMAND 1234 user20 020001210560 8204 R 5.0 0.302:30.45 example-process
TIME+
Hier zeigt die Spalte die Laufzeit des Prozesses im Format Stunden, Minuten und Sekunden an.
Systemd
systemctl
Sie können
systemctl status example-service
● 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
Active
In der Ausgabe zeigt der Abschnitt den Aktivitätsstatus des Dienstes und die Zeit seit seinem Start an. 🎜
创建一个 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
保存并退出编辑器。
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!