Jawaban:
Untuk proses yang 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 bash prompt 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 \u@\h:\w\nstart cmd:> '
PS2="cont. cmd:> "
Bagian yang relevan untuk Anda adalah \t
untuk saat itu.
Ini tidak menyelesaikan semua masalah. Prompt baru akan menunjukkan kapan proses telah berakhir tetapi prompt sebelumnya mungkin sudah cukup lama ketika perintah yang akan diukur dimulai. Jadi Anda ingat untuk memperbarui prompt sebelum memulai perintah yang berjalan lama atau Anda harus mengingat waktu saat ini ketika Anda ingin tahu berapa lama proses saat ini akan diambil.
Untuk solusi lengkap, Anda memerlukan fitur audit (yang mencatat waktu mulai dan berakhirnya proses). Tetapi itu dapat menyebabkan sejumlah besar data jika tidak dapat dibatasi pada shell.