Если вы проверите psinfo для процесса с PID 1 из В каталоге / proc вы можете получить такую структуру:
struct pr_timestruc64_t pr_start; /* process start time, time since epoch */
Вот веб-страница , которую вы можете использовать для справки.
Для Ubuntu, Redhat, Suse у нас может быть этот файл. Не очень уверен в AIX, хотя
См. Вывод:
cat / proc / uptime
Если это недоступно в AIX, попробуйте выполнить команду uptime
Этот ответ откровенно скопирован с ответа Жиля на Как получить время работы процесса под разными ОС?:
t=$(LC_ALL=POSIX ps -o etime= -p 1)
d=0 h=0
case $t in *-*) d=$((0 + ${t%%-*})); t=${t#*-};; esac
case $t in *:*:*) h=$((0 + ${t%%:*})); t=${t#*:};; esac
s=$((10#$d*86400 + 10#$h*3600 + 10#${t%%:*}*60 + 10#${t#*:}))
Это оставляет вам количество секунд времени работы в $s
.
Мы делаем предположение, что время запуска init
- это время, когда мы начинаем считать "время работы", а также что init - это PID 1 (верно в моем ограниченном тестировании).