Rumah  >  Artikel  >  tutorial komputer  >  Bagaimana untuk menyemak berapa lama proses telah berjalan di Linux

Bagaimana untuk menyemak berapa lama proses telah berjalan di Linux

WBOY
WBOYke hadapan
2024-03-10 08:04:171178semak imbas

Masa berjalan sesuatu proses merujuk kepada masa yang telah berlalu sejak proses itu dimulakan.

Menyemak masa berjalan proses boleh membantu kami menentukan proses dalam sistem yang telah berjalan untuk berapa lama. Ini penting untuk mengenal pasti isu yang menyebabkan tindak balas sistem yang perlahan dan penggunaan sumber sistem yang tinggi.

Kami menemui dan menangani proses yang berjalan lama ini tepat pada masanya, yang boleh meningkatkan kestabilan dan prestasi sistem.

Bagaimana untuk menyemak berapa lama proses telah berjalan di Linux

Gunakan arahan ps

Arahan

ps ialah alat yang berkuasa untuk melaporkan status semasa proses sistem.

Dengan menggabungkan pilihan yang berbeza, kita boleh mendapatkan pelbagai maklumat tentang proses, termasuk masa berjalan proses.

Gunakan arahan berikut untuk melihat maklumat asas proses, termasuk ID proses (PID), masa berjalan, dsb.:

ps -eo pid,cmd,etime
  • -e: Tunjukkan semua proses
  • -o: Tentukan format output

Dalam output lajur oleh arahan di atas, etime mewakili masa berjalan proses.

Contohnya:

PID CMDELAPSED
 1234 /usr/bin/example-process02:30:45

Ini bermakna proses dengan PID 1234 example-process telah berjalan selama 2 jam, 30 minit dan 45 saat.

Gunakan arahan atas

top ialah alat baris arahan untuk pemantauan masa nyata proses sistem, menyediakan senarai proses yang dikemas kini secara dinamik.

Jalankan arahan berikut untuk memulakan top:

top

Dalam antara muka top 界面,你可以按 Shift+E, anda boleh menekan kekunci Shift+E untuk menukar paparan masa berjalan proses.

Ini akan menyebabkan senarai proses mengandungi lajur TIME+ yang menunjukkan jumlah masa proses telah berjalan.

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

Dalam contoh ini, masa berjalan example-process ialah 2 jam, 30 minit dan 45 saat.

Gunakan arahan pstree

Arahan

pstree memaparkan hierarki proses dalam bentuk rajah pokok. Dengan melihat pepohon proses, kita boleh mendapatkan gambaran yang lebih jelas tentang perhubungan antara proses dan melihat tempoh masa yang diperlukan untuk dijalankan.

Jalankan arahan berikut untuk menggunakan pstree untuk melihat pepohon proses:

pstree -p

Antaranya, pilihan -p memaparkan PID proses. Outputnya mungkin kelihatan seperti ini:

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

Dengan melihat struktur pokok ini, anda boleh mengenal pasti setiap proses dan sub-prosesnya serta memahami berapa lama ia telah berjalan jika diperlukan.

Gunakan sistem fail /proc

Direktori /proc dalam Linux ialah sistem fail maya yang menyediakan maklumat tentang sistem dan proses.

Kita boleh mendapatkan butiran proses, termasuk masa berjalan, dengan membaca fail di bawah /proc.

Dengan membaca fail /proc/[PID]/stat, kita boleh mendapatkan maklumat terperinci tentang proses tertentu, termasuk masa berjalan.

Berikut adalah contoh:

cat /proc/1234/stat

Keluaran mungkin seperti berikut:

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

Dalam output, lajur 22 (dari kiri) mewakili masa berjalan proses dalam tanda jam.

Guna htop

htop 是一个交互式的、更友好的进程查看工具,相对于传统的 top ialah alat tontonan proses yang interaktif dan lebih mesra, yang lebih berkuasa dan intuitif daripada arahan

tradisional.

htopJalankan arahan berikut untuk memulakan

:

htop
htopDalam antara muka

, anda boleh menggunakan kekunci anak panah dan kekunci fungsi untuk menavigasi dan melakukan pelbagai operasi.

F6 键,选择并启用 TIME+Tekan kekunci F6 untuk memilih dan mendayakan

untuk memaparkan masa berjalan proses.

PID USERPRINIVIRTRESSHR S%CPU%MEM TIME+ COMMAND
1234 user20 020001210560 8204 R 5.0 0.302:30.45 example-process
TIME+Di sini, lajur

menunjukkan masa berjalan proses dalam format jam, minit dan saat.

Gunakan alatan Systemd

Systemd

ialah pengurus sistem dan perkhidmatan yang menyediakan pelbagai alat untuk memantau dan mengawal proses yang berjalan pada sistem.

systemctlAnda boleh menggunakan

untuk melihat butiran perkhidmatan tertentu, termasuk masa operasi, dengan menjalankan arahan berikut:

systemctl status example-service

Output mengandungi butiran perkhidmatan, termasuk masa berjalan:

● 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
ActiveDalam output, bahagian

menunjukkan status aktiviti perkhidmatan dan masa sejak ia dimulakan. 🎜

编写脚本自动化检查

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

保存并退出编辑器。

Atas ialah kandungan terperinci Bagaimana untuk menyemak berapa lama proses telah berjalan di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:mryunwei.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam