Saya menggunakan psperintah sebagai bagian dari latihan untuk mengidentifikasi proses yang berjalan lebih lama dari batas yang diberikan.
Saya menggunakan templat berikut untuk mendapatkan waktu yang telah berlalu untuk perintah know process:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Saya perhatikan dengan proses yang berjalan singkat, nilai etime (waktu yang berlalu) mengambil format minutes:secondsdan dari sini saya dapat dengan mudah menentukan berapa lama suatu proses telah berjalan.
Untuk proses yang berjalan sangat lama (berhari-hari panjang), saya tidak mengerti formatnya.
Saya memiliki proses server MySQL yang htopberjalan selama 126 jam.
Eksekusi ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'memberi saya nilai 9-03:35:32.
Tebakan terbaik saya adalah ini berarti 9 sesuatu, 3 jam, 35 menit, 32 detik. Saya tidak tahu apa unit untuk 9.
Proses yang dimaksud telah berjalan 126 jam, sekitar 5,25 hari. Ini menunjukkan bahwa angka 9 pada output di atas tidak mewakili hari. Mereka tidak bisa setengah hari karena (9 * 12) jam + 3 jam + 35 menit + 32 detik kurang dari 5 hari.
Bagaimana cara menafsirkan nilai waktu yang telah berlalu yang saya lihat untuk proses yang berjalan lama? Unit apa yang menyertai angka 9 pada output di atas?
etimesalih-alih etimedan bandingkan hasilnya.
psmenampilkan satu atau yang lain tergantung pada opsi yang Anda lewati.