uptime 是最直接、最可靠的方式,它输出的 “up x days, y min” 就是系统当前连续运行时间,不依赖 systemd、不需 root 权限、内核级统计,结果可信。

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
uptime 是最直接、最可靠的方式,它输出的 “up X days, Y min” 就是系统当前连续运行时间,不依赖 systemd、不需 root 权限、内核级统计,结果可信。
用 uptime 看运行时长(终端快速扫一眼)
执行 uptime 后,关键信息就在 “up” 后面:19:10:22 up 3 days, 4:27, 2 users, load average: 0.15, 0.10, 0.05
这里 “up 3 days, 4:27” 表示已连续运行 3 天 4 小时 27 分钟。
常见错误是把开头的 19:10:22 当成开机时间——那是当前时刻,不是启动时刻。load average 和运行时间完全无关,别混淆。
用 uptime -s 和 who -b 查精确启动时刻
需要知道“具体哪天几点开机”,优先用这两个命令:
• uptime -s 输出本地时间戳,如 2026-06-15 14:43:17,精度到秒,所有主流发行版都支持
• who -b 输出 system boot 2026-06-15 14:43,精度到分钟,但更底层(读 /var/run/utmp),不受 init 延迟影响,WSL 和 OpenRC 系统也能用
两者差值在 0–60 秒属正常;若 who -b 输出为空,说明 utmp 损坏或权限异常,此时 fallback 到 uptime -s
从 /proc/uptime 读秒数(适合脚本或高精度需求)
/proc/uptime 第一列是浮点数,表示自启动以来的总秒数(含小数),例如 274856.33。
注意:这个值不扣除休眠时间,频繁 suspend 的机器会明显偏大
容器中运行时,它反映的是宿主机 uptime,不是容器本身启动时间
脚本里建议先截断小数:awk '{print int($1)}' /proc/uptime
再换算成可读格式:awk '{d=int($1/86400); h=int($1%86400/3600); m=int($1%3600/60); printf "%dd %dh %dm\n", d, h, m}' /proc/uptime
慎用 systemctl status 查启动时间
执行 systemctl status | grep "Started:" 或 systemctl status | grep "Since:" 得到的时间,是 systemd 用户空间就绪时刻,比内核启动晚 2–10 秒。
它不能反映 kernel panic 后自动重启的情况
在非 systemd 系统(如 Alpine + OpenRC)中完全不可用
如果只是查“硬件通电后跑了多久”,这个值会低估;若你只关心服务可用起始点,它才有参考价值
uptime -s 和 who -b 覆盖了 90% 的需求;只有写监控脚本或排查休眠偏差时,才需要碰 /proc/uptime 的小数点。










