当 Vista 服务立即停止时记录要查找的位置

当 Vista 服务立即停止时记录要查找的位置

我正在尝试诊断为什么 cygwin sshd 服务会立即启动和停止。在 Vista 应用程序事件日志中,我发现:

sshd: PID 3480: `sshd' service stopped, exit status: 255

这没什么帮助。

在哪里可以找到其他提示?日志中除了应用程序之外的其他地方?

答案1

如果进程在启动期间或启动后立即崩溃(看起来是这种情况),则应在应用程序日志中记录事件 ID 1000“应用程序错误”事件,并且可能被几个 Windows 错误报告条目包围。

如果我是你,我会将 Sysinternals 中的 procdump.exe 设置为我的即时调试器。你可以使用以下命令执行此操作:

procdump.exe -ma -i C:\dumps

这会修改 AEDebug 注册表项,以便每当系统上的进程崩溃时,它都会触发 procdump.exe 来捕获该进程的内存转储,然后您可以在 Windbg 中打开它并查看进程死亡前其堆栈上的内容等。

但无论如何,如果进程没有崩溃,而是由于其自身逻辑中的某些其他内部条件而正常退出,我有点怀疑,因为我认为应用程序永远不会有机会将您提到的事件写入日志,然后在您尝试启动服务时使用进程监视器(procmon)来跟踪正在运行的系统。

现在停止跟踪并跟踪您的进程。它尝试访问什么?查找Result != SUCCESS该进程的事件...也许它正在寻找磁盘上的文件或无法找到的注册表项。您可能会看到类似这样的信息:进程尝试绑定到端口 443 上的套接字但被拒绝访问,或者找不到证书等。

虽然这不是什么灵丹妙药,但如果你遵循我给你的建议,这将是你获得的最佳信息,也是你调试此问题的最佳机会。

相关内容