W nawiązaniu do odpowiedzi Adam Matan za tego, /proc/<pid>
czas znaczek katalogu jako takie nie zawsze jest bezpośrednio przydatna, ale można użyć
awk -v RS=')' 'END{print $20}' /proc/12345/stat
aby uzyskać czas rozpoczęcia w zegarze tyka od uruchomienia systemu. 1
Jest to nieco trudna jednostka do użycia; zobacz także konwertuj jiffies na sekundy, aby poznać szczegóły.
awk -v ticks="$(getconf CLK_TCK)" 'NR==1 { now=$1; next }
END { printf "%9.0f\n", now - ($20/ticks) }' /proc/uptime RS=')' /proc/12345/stat
To powinno dać ci sekundy, które możesz przekazać, strftime()
aby uzyskać znacznik czasu (czytelny dla człowieka lub inny).
awk -v ticks="$(getconf CLK_TCK)" 'NR==1 { now=$1; next }
END { print strftime("%c", systime() - (now-($20/ticks))) }' /proc/uptime RS=')' /proc/12345/stat
Zaktualizowano w niektórych poprawkach Stephane Chazelas w komentarzach; dzięki jak zawsze!
Jeśli masz tylko Mawk, może spróbuj
awk -v ticks="$(getconf CLK_TCK)" -v epoch="$(date +%s)" '
NR==1 { now=$1; next }
END { printf "%9.0f\n", epoch - (now-($20/ticks)) }' /proc/uptime RS=')' /proc/12345/stat |
xargs -i date -d @{}
1 człowiek proc ; wyszukaj czas rozpoczęcia .
ps -p <pid> -o lstart
? Wydaje się, że to działa, ale nie jestem pewien, dlaczego nie jest to bezpośrednia oczywista odpowiedź na wiele razy, kiedy to pytanie wydaje się pojawiać.