互联网技术 / 互联网资讯 · 2023年12月16日 0

Docker教程:云计算核心技术的堆栈跟踪记录

如果守护程序无响应,则可以通过向SIGUSR1守护程序发送信号来强制记录完整的堆栈跟踪。

linux:

$ sudo kill -SIGUSR1 $(pidof dockeRd)

Windows SeRveR:

下载dockeR-signal。

获取dockeRd的进程ID Get-ProceSS dockeRd。

运行带有标志的可执行文件–pid=。

这将强制记录堆栈跟踪,但不会停止守护程序。守护程序日志显示堆栈跟踪或包含堆栈跟踪的文件的路径(如果已将其记录到文件中)。

在处理SIGUSR1信号并将堆栈跟踪信息转储到日志之后,守护程序将继续运行。堆栈跟踪可用于确定守护程序中所有goRoutine和线程的状态。

查看堆栈跟踪

可以使用以下方法之一查看DockeR守护程序日志:

1.通过使用以下命令jouRnalctl -u dockeR.seRvice在linux系统上运行systemctl

2./vaR/log/MeSSages,/vaR/log/daeMon.log或/vaR/log/dockeR.log在较旧的linux系统上

无法在Mac的DockeR桌面或Windows的DockeR桌面上手生成堆栈跟踪。但是,如果遇到问题,可以单击DockeR任务栏图标,然后选择诊断和反馈以将信息发送给DockeR。

DockeR日志中查找如下消息:

…goRoutine stacks wRITten to /vaR/Run/dockeR/goRoutine-stacks-2017-06-02T193336z.log

…daeMon datastructure duMp wRITten to /vaR/Run/dockeR/daeMon-data-2017-06-02T193336z.log

DockeR保存这些堆栈跟踪和转储的位置取决于您的操作系统和配置。有时您可以直接从堆栈跟踪和转储中获得有用的诊断信息。否则,您可以将此信息提供给DockeR,以帮助诊断问题。