Untuk proses yang sedang berjalan, Anda dapat melakukan ini:
PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime
Sebagai fitur umum, Anda dapat memodifikasi prompt shell Anda. Ini adalah definisi prompt bash saya:
TERM_RED_START=$'\033[1m\033[31m'
TERM_RED_END=$'\033(B\033[m'
PS1='\nec:$(ec=$?; if [ 0 -eq $ec ];
then printf %-3d $ec;
else echo -n "$TERM_RED_START"; printf %-3d $ec; echo "$TERM_RED_END";
fi) \t \[email protected]\h:\w\nstart cmd:> '
PS2="cont. cmd:> "
Bagian yang relevan untuk Anda adalah \t
untuk saat ini.
Ini tidak menyelesaikan semua masalah. Prompt baru akan muncul ketika proses telah berakhir tetapi prompt sebelumnya mungkin sudah cukup lama ketika perintah yang akan diukur dimulai. Jadi apakah Anda ingat untuk memperbarui prompt sebelum memulai perintah yang berjalan lama atau Anda harus mengingat waktu saat ini ketika Anda ingin mengetahui berapa lama proses saat ini akan berlangsung.
Untuk solusi lengkap, Anda memerlukan fitur audit (yang mencatat waktu mulai dan berakhirnya proses). Namun hal itu dapat menyebabkan sejumlah besar data jika tidak dapat dibatasi ke shell.
Membangun berdasarkan jawaban yang diterima, Anda juga dapat terus memantau waktu yang telah berlalu dari proses yang berjalan menggunakan watch
:
PID=5462
watch command ps -p "$PID" -o etime