我需要使用 ksh 获取自上次重新启动以来的秒数。
实现此目的的命令或函数是什么?
答案1
如果您从 /proc 目录检查 PID 为 1 的进程的 psinfo,您可以得到以下结构:
struct pr_timestruc64_t pr_start; /* process start time, time since epoch */
这里是网页你可以参考一下。
答案2
对于Ubuntu、Redhat、Suse,我们可以有这个文件。不过对 AIX 不太确定
查看输出:
cat /proc/uptime
如果这在 AIX 上不可用,则尝试执行命令uptime
答案3
这个答案公然复制自吉尔斯的答案如何获取不同操作系统下进程的正常运行时间?:
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(在我有限的测试中是这样)。