【问题标题】:How to simulate process/daemon crash on OSX?如何在 OSX 上模拟进程/守护进程崩溃?
【发布时间】:2013-06-09 18:32:12
【问题描述】:

我怎样才能invoke/simulateprocess/daemonOSX 上崩溃并在

/Library/Logs/DiagnosticRepors

(例如opendirectoryd_2013-06-11-125032_macmini61.crash)?

我尝试使用活动监视器强制退出守护程序,但没有收到任何报告。我需要崩溃一些系统或第三方进程(不是我自己开发的)。

【问题讨论】:

    标签: macos crash daemon


    【解决方案1】:

    您可以通过向其发送“分段违规”信号来强制几乎任何进程崩溃。

    示例:查找“opendirectoryd”的进程ID:

    $ ps -ef | grep 打开目录 0 15 1 0 9:14am ?? 0:01.11 /usr/libexec/opendirectoryd ^-- 进程号

    向进程发送信号:

    $ sudo 杀 -SEGV 15

    这会终止进程并导致写入诊断报告, 可以在“system.log”中验证:

    10 月 31 日 09:17:17 主机名 com.apple.launchd[1] (com.apple.opendirectoryd[15]):作业似乎已崩溃:分段错误:11 10 月 31 日 09:17:20 主机名 ReportCrash[420]:已保存 opendirectoryd[15] 版本的崩溃报告??? (???) 到 /Library/Logs/DiagnosticReports/opendirectoryd_2013-10-31-091720_localhost.crash

    但请注意,故意使系统服务崩溃可能会导致严重问题(系统不稳定、数据丢失……),因此您应该清楚自己在做什么。

    【讨论】:

      【解决方案2】:

      除非您能找到一个合法的错误并让它以这种方式崩溃,否则您不能在外部以这种方式使守护程序崩溃,从而导致诊断报告。所有强制戒烟功能都免于诊断报告,因为它们是外部问题。

      【讨论】:

      • 这显然是错误的,正如 Martin R 的回答所证明的那样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 2022-12-12
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多