Rumah > Artikel > tutorial komputer > Bagaimana untuk menyemak berapa lama proses telah berjalan di Linux
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.
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 outputDalam 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.
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.
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.
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.
htop
是一个交互式的、更友好的进程查看工具,相对于传统的 top
ialah alat tontonan proses yang interaktif dan lebih mesra, yang lebih berkuasa dan intuitif daripada arahan
htop
Jalankan arahan berikut untuk memulakan
htop
htop
Dalam 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
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.
Systemd
systemctl
Anda boleh menggunakan
systemctl status example-serviceOutput 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
Active
Dalam output, bahagian menunjukkan status aktiviti perkhidmatan dan masa sejak ia dimulakan. 🎜
创建一个 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!