我正在寻找一种方法来记录我的 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