¿Es posible obtener la hora de inicio de un antiguo proceso en ejecución? Parece que ps
informará la fecha (no la hora) si no se inició hoy, y solo el año si no se inició este año. ¿Se pierde para siempre la precisión de los viejos procesos?
250
ps -p <pid> -o lstart
? Parece que funciona, pero no estoy seguro de por qué no es la respuesta obvia inmediata para las muchas veces que esta pregunta parece surgir.ps -p <pid> -o lstart=
para evitar que se imprima una línea adicional (encabezado).ps -p <pid> -o lstart
? ¿Quizás el hecho de que no hayalstart
ni en la Edición 2004 ni en la Edición 2013 del estándar POSIX 1003.1?Respuestas:
Puede especificar un formateador y usar
lstart
, como este comando:El comando anterior generará todos los procesos, con formateadores para obtener PID, ejecución del comando y fecha + hora de inicio.
Ejemplo (de la línea de comando de Debian / Jessie)
Puede leer la página de manual
ps
o consultar la página de Opengroup para ver los otros formateadores.fuente
etime
es el tiempo transcurrido desde que se inició el proceso.ps axo pid,cmd,lstart
también funcionalstart
tiempo puede cambiar, losstat
métodos a continuación son más seguros: unix.stackexchange.com/questions/274610/… .El comando ps (al menos la versión procps utilizada por muchas distribuciones de Linux) tiene una serie de campos de formato que se relacionan con la hora de inicio del proceso, incluida la
lstart
que siempre proporciona la fecha y hora completas de inicio del proceso:Para una discusión sobre cómo se publica la información en el sistema de archivos / proc, consulte /unix/7870/how-to-check-how-long-a-process-has-been-running
(En mi experiencia con Linux, la marca de tiempo en los directorios / proc / parece estar relacionada con un momento en el que se accedió recientemente al directorio virtual en lugar de la hora de inicio de los procesos:
Tenga en cuenta que en este caso ejecuté un comando "ps -p 1" aproximadamente a las 16:50, luego generé un nuevo shell bash, luego ejecuté el comando "ps -p 1 -p $$" dentro de ese shell poco después ... .)
fuente
e
(ps
sintaxis estándar ) oax
(sintaxis BSD) al comando ps: es decir,ps -ewo pid,lstart,cmd
ops -axwo pid,lstart,cmd
Como seguimiento a la respuesta de Adam Matan , la
/proc/<pid>
marca de tiempo del directorio como tal no es necesariamente directamente útil, pero puede usarpara obtener la hora de inicio en el reloj desde el inicio del sistema. 1
Esta es una unidad un poco difícil de usar; vea también convertir jiffies a segundos para más detalles.
Esto debería darle segundos, que puede pasar
strftime()
para obtener una marca de tiempo (legible para humanos o de otro modo).Actualizado con algunas correcciones de Stephane Chazelas en los comentarios; ¡Gracias como siempre!
Si solo tienes Mawk, tal vez intente
1 hombre proc ; busca la hora de inicio .
fuente
strftime()
ysystime()
no están presentesmawk
, que es el valor predeterminadoawk
en mis imágenes de Debian 8 VPS, por lo que solo puedo suponer que son específicasgawk
del dialecto.Por ejemplo, el PID de mi Google Chrome es 11583:
fuente
ps
que diceinvalid option
todas las opciones mencionadas por otras respuestas.grep
? ¿Por qué nols -ldh /proc/$pid
? O incluso mejordate -r /proc/$pid
?fuente
fuente