Karena "uptime" memiliki beberapa arti, berikut ini adalah perintah yang berguna.
ps -eo pid,comm,lstart,etime,time,args
Perintah ini mencantumkan semua proses dengan beberapa kolom terkait waktu yang berbeda. Ini memiliki kolom berikut:
PID COMMAND STARTED ELAPSED TIME COMMAND
PID
= ID proses
pertama COMMAND
= hanya nama perintah tanpa opsi dan tanpa argumen
STARTED
= waktu absolut proses dimulai
ELAPSED
= waktu berlalu sejak proses dimulai ( waktu jam dinding ), format [[dd-] hh:] mm: ss
TIME
= kumulatif Waktu CPU, "[dd-] jj: mm: dd" format
detik COMMAND
= lagi perintah, kali ini dengan semua opsi dan argumen yang disediakan
etimes
diri saya sendiri - waktu berlalu dalam hitungan detik - jadi itu bisa dibaca mesinJika Anda memiliki versi terbatas
ps
seperti yang ditemukan dibusybox
, Anda bisa mendapatkan waktu mulai proses dengan melihat stempel waktu/proc/<PID>
. Misalnya, jika pid yang ingin Anda lihat adalah 55 ...... lalu bandingkan dengan tanggal saat ini ...
sumber
Saya pikir Anda bisa menjalankan:
1234 menjadi id proses.
contoh dengan dua proses dimulai pada jam menit menit yang sama tetapi tidak milidetik yang sama:
sumber
Hal sederhana seperti itu tidak dijawab dengan benar setelah 5 tahun?
Saya tidak berpikir Anda bisa mendapatkan milidetik secara akurat. misalnya. jika Anda melihat
man procfs
dan melihat/proc/$$/stat
yang memiliki bidang 22 sebagai waktu mulai, yang ada di "kutu jam", Anda akan memiliki sesuatu yang lebih tepat, tetapi kutu jam tidak akan berada pada tingkat yang konstan sempurna (relatif terhadap 'waktu jam dinding') dan akan pergi ... tidur dan hal-hal tertentu (ntpd kurasa) mengimbanginya. Misalnya pada mesin yang menjalankan ntpd, dengan uptime 8 hari dan tidak pernah tidur,dmesg -T
memiliki masalah yang sama (saya pikir ...), dan Anda dapat melihatnya di sini:Inilah detik:
sumber
ya, terlalu tua dan terlalu sulit. Saya mencoba dengan metode "stat" yang diusulkan di atas, tetapi bagaimana jika saya "menyentuh" -dengan direktori PID kemarin? Ini berarti proses saya yang berumur satu tahun ditunjukkan dengan cap waktu kemarin. Nah, bukan itu yang saya butuhkan :(
Di yang lebih baru, sederhana:
sesimpel itu. Waktu hadir dalam detik. Lakukan apa pun yang Anda butuhkan. Dengan beberapa kotak yang lebih tua, situasinya lebih sulit, karena tidak ada waktu luang. Orang bisa mengandalkan:
yang terlihat "sedikit" aneh karena dalam format dd-hh: mm: ss. Tidak cocok untuk perhitungan lebih lanjut. Saya lebih suka dalam hitungan detik, jadi saya menggunakan yang ini:
sumber
pidof java
=> id proses untuk proses javaetimes=
=> waktu dalam Detik dan '=' adalah untuk menghapus headersumber