【发布时间】:2017-05-18 00:55:33
【问题描述】:
如何在 macOS 上获取进程的开始时间? ps -o lstart 和 ps -o start 打印格式化日期而不是 Unix 时间戳。
理想情况下,这可以跨 Unix 移植(即显然没有 /proc)。
【问题讨论】:
如何在 macOS 上获取进程的开始时间? ps -o lstart 和 ps -o start 打印格式化日期而不是 Unix 时间戳。
理想情况下,这可以跨 Unix 移植(即显然没有 /proc)。
【问题讨论】:
lstart使用locale指定的格式,如果使用LC_ALL=C,可以获得一致、简单的格式:
$ TZ=UTC LC_TIME=C ps -o lstart= -p $$
Thu May 11 01:03:52 2017
$ LC_TIME=C ps -o lstart= -p $$
Thu May 11 10:03:52 2017
然后有几个工具可用于将格式化的日期转换为时间戳。对于便携性,perhaps Perl:
$ (export LC_TIME=C TZ=UTC; ps -o lstart= -p $$ | perl -ne 'use Date::Parse; printf "%s\n", str2time($_)')
1494882318
【讨论】:
TZ 设置为 UTC