寻找在 OS X(Mac)上记录进程终止的方法

寻找在 OS X(Mac)上记录进程终止的方法

我正在寻找一种方法来记录我的 Mac(OS X 10.6.8)上的所有进程终止。(并查看 pid、时间戳、进程名称)

我已经为 HP-UX 实现了类似的东西,但是它需要一个内核级驱动程序并拦截“exit()”的几种变体(正常的变体,以及在进程中止时代表进程调用的变体)。

我为什么想要这些信息?

我在系统日志文件(dmesg)中看到如下消息:

CODE SIGNING: cs_invalid_page(0x1000): p=91550[GoogleSoftwareUp] clearing CS_VALID
CODE SIGNING: cs_invalid_page(0x1000): p=92088[GoogleSoftwareUp] clearing CS_VALID

尽管 dmesg 缺少时间戳,但 apps/Utilities/Console:Database:all: 搜索 CS_VALID 显示消息大约每 58 1/2 分钟出现一次。

我怀疑“p=”后面的数字是一个进程 ID (pid)......但是当我看到该消息时,该进程早已终止。

因此,如果有一个进程终止日志机制,记录 pid、终止时间、终止原因和进程名称(终止时),那么我可能就能确定是谁导致记录这些错误!

(不,我没有在 Mac 上运行 Chrome,也ps -ef | grep -i goog没有得到任何结果...我没有刻意在 Mac 上运行任何 Google 应用)

谢谢,

斯坦 [电子邮件保护]

编辑:Gary,你观察到的很有趣,谢谢!在我的系统中,dmesg 中的 pid 和 Library/Logs/GoogleSoftwareUpdateAgent.log 中的 pid 似乎没有关联……但如果你看到了这种关联,那就很有趣了!

我的 Google 日志中出现了“无法连接到系统引擎”的错误,但出现的频率不到每小时一次。以下是最近的三次错误:

2012-10-31 23:42:13.019 GoogleSoftwareUpdateAgent[13062/0xb0207000] [lvl=3] -[KSAgentApp(KeystoneThread) runKeystonesInThreadWithArg:] Failed to connect to system engine.
2012-11-01 05:34:33.051 GoogleSoftwareUpdateAgent[18632/0xb0207000] [lvl=3] -[KSAgentApp(KeystoneThread) runKeystonesInThreadWithArg:] Failed to connect to system engine.
2012-11-01 11:26:49.842 GoogleSoftwareUpdateAgent[23871/0xb0207000] [lvl=3] -[KSAgentApp(KeystoneThread) runKeystonesInThreadWithArg:] Failed to connect to system engine.

...大约每六个小时一次,并且 pid 与 dmesg 中的不同。

答案1

less $HOME/Library/Logs/GoogleSoftwareUpdateAgent.log

似乎已经记录了 PID:

2012-10-31 09:35:17.003 GoogleSoftwareUpdateAgent[24805/0xb0289000] [lvl=3] -[KSAgentApp(KeystoneThread) runKeystonesInThreadWithArg:] Failed to connect to system engine.

与 dmesg 消息相关:

CODE SIGNING: cs_invalid_page(0x1000): p=24805[GoogleSoftwareUp] clearing CS_VALID

相关内容