Sto usando un ps
comando come parte di un esercizio per identificare i processi che durano più a lungo di una determinata soglia.
Sto usando il seguente modello per ottenere il tempo trascorso per un comando di processo noto:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Noto che con processi a esecuzione breve, il valore etime (tempo trascorso) assume il formato minutes:seconds
e da questo posso facilmente determinare da quanto tempo è in esecuzione un processo.
Per i processi di esecuzione molto lunghi (giorni), non capisco il formato.
Ho un processo server MySQL che htop
mostra come in esecuzione per 126 ore.
L'esecuzione ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
mi dà un valore di 9-03:35:32
.
La mia ipotesi migliore è che ciò significhi 9 qualcosa, 3 ore, 35 minuti, 32 secondi. Non riesco a capire quali siano le unità per il 9.
Il processo in questione dura 126 ore, circa 5,25 giorni. Ciò suggerisce che il 9 nell'output sopra non rappresenta i giorni. Non possono essere nemmeno mezza giornata in quanto (9 * 12) ore + 3 ore + 35 minuti + 32 secondi è inferiore a 5 giorni.
Come posso interpretare il valore del tempo trascorso che vedo per i processi di lunga durata? Quali unità accompagnano il 9 nell'output sopra?
etimes
invece etime
e confrontare i risultati.
ps
visualizza l'uno o l'altro a seconda delle opzioni che si passano.