log show 命令可通过匹配进程名与“launch”“start”“spawn”等关键词精准定位启动日志,时间戳精度达毫秒级,可信度高;需排除keepalive、exit、子进程等干扰项,并可用ps -eo pid,comm,lstart交叉验证。
macos 的 log show 命令可以直接从统一日志(unified logging)系统中提取进程的启动时间点,前提是该进程启动时触发了日志记录(绝大多数系统服务和 gui 应用都满足)。关键在于匹配进程名与启动相关事件,而非依赖“启动时间”字段——日志本身自带精确时间戳。
定位进程启动日志的核心方法
启动事件通常由 launchd 或应用自身触发,日志中常见关键词包括 launch、started、spawned、exec,或直接包含进程名出现在 process 字段。推荐组合使用 --predicate 和 --last 进行精准筛选:
-
基础命令格式:
log show --predicate 'process == "WeChat"' --last 1d—— 查看过去一天内所有微信进程产生的日志(含启动、崩溃、网络请求等) -
聚焦启动动作:
log show --predicate 'process == "WeChat" AND eventMessage contains[c] "launch"' --last 7d—— 只保留含“launch”的消息,大幅减少干扰 -
扩大匹配范围:
log show --predicate 'process == "WeChat" AND (eventMessage contains[c] "start" OR eventMessage contains[c] "spawn")' --last 3d—— 兼容不同日志表述习惯
确认启动时间戳的可靠性
每条日志左侧显示的时间(如 2026-07-05 14:22:38.123)即为系统记录的精确时间点,精度达毫秒级。这个时间是内核写入日志的时间,不是应用内部上报的时间,因此可信度高。注意:GUI 应用(如微信)的首次启动日志通常在用户点击图标后 1–3 秒内生成;后台服务(如 com.apple.screensharing)则在系统启动或按需激活时记录。
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
排除常见干扰项
有些日志看似相关,实则不是启动事件:
- 重复出现的“keepalive”或“health check”日志 —— 属于进程运行中的心跳检测,非启动
- “Exited with exit code”类日志 —— 是退出记录,需结合前一条日志判断是否为本次启动
-
子进程日志(如 WeChat Helper) —— 主进程名通常是
WeChat,Helper 进程名不同,需单独查
配合 ps 命令验证实时状态
若需确认某次启动是否仍在运行,可即时比对:
-
ps -eo pid,comm,lstart | grep WeChat—— 输出类似12345 WeChat Mon Jul 5 14:22:38 2026,其中lstart即进程启动时间,与日志时间基本一致(误差通常 - 两者时间偏差超过 5 秒,可能说明日志被延迟写入或进程已重启过

















