GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso ottenere l'ora dell'orologio da parete di un processo in esecuzione?

Per un processo in esecuzione puoi fare questo:

PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime

Come funzionalità generale è possibile modificare il prompt della shell. Questa è la mia definizione del prompt di bash:

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:> "

La parte rilevante per te è il \t per il momento.

Questo però non risolve tutti i problemi. Il nuovo prompt mostrerà quando il processo è terminato, ma il precedente prompt potrebbe essere piuttosto vecchio quando è stato avviato il comando da misurare. Quindi, o ti ricordi di rinnovare il prompt prima di avviare i comandi a esecuzione prolungata o devi ricordare l'ora corrente quando vuoi sapere quanto tempo avrà impiegato il processo corrente.

Per una soluzione completa è necessaria una funzione di controllo (che registri l'ora di inizio e di fine dei processi). Ma ciò potrebbe causare un'enorme quantità di dati se non può essere limitato alla shell.


Sulla base della risposta accettata, puoi anche monitorare continuamente il tempo trascorso di un processo in esecuzione utilizzando watch :

PID=5462
watch command ps -p "$PID" -o etime

Linux
  1. Come posso ottenere lo stato della tastiera in Linux?

  2. Come ottenere l'ora di inizio di un processo Linux di lunga durata?

  3. L'ID thread di un processo multithread può essere uguale all'ID processo di un altro processo in esecuzione?

  4. Come ottenere l'ID del processo per terminare un processo nohup?

  5. Come posso ottenere la data e l'ora correnti nel terminale e impostare un comando personalizzato nel terminale per questo?

Come ottenere la data e l'ora correnti in Python

Come ottenere il Tty in cui è in esecuzione Bash?

Come ottenere gli argomenti della riga di comando passati a un processo in esecuzione su sistemi unix/linux?

Come posso ottenere la lunghezza di un file video dalla console?

Come ottenere il tempo di esecuzione totale di un disco rigido

Come posso ottenere in modo affidabile il nome del sistema operativo?