如果将应用程序安装到SAN并且进程崩溃,是否可以将核心转储写入SAN分区?我一直在努力追查我们的流程死亡而没有生成核心的问题,因此没有堆栈。两种情况都在两个完全独立的Solaris环境中。 ulimit -c是无限的,pstack在路径中。在我最初的研究中,我发现一条声明声称无法将转储核心转移到SAN磁盘。我再也找不到这些信息了,这让我质疑它的有效性。
答案 0 :(得分:0)
core(4)
中未生成或列出核心的情况,请使用man core
阅读联机帮助页。如果涉及用户ID nobody ,则可能发生(或者更确切地说,没有发生任何事情)。
您还可以使用gcore
查看手动获取核心转储是否有帮助。请查看核心转储默认情况下的coreadm
- 可能它们不在当前工作目录中,但位于/var
的某处?
沃尔克
答案 1 :(得分:0)
您发现核心转储到SAN无效的引用可能是指内核本身的核心转储。 (通常在Solaris上称为故障转储)
也许该进程没有有用的当前目录。使用coreadm强制将核心转储写入合理的地方。见http://developers.sun.com/solaris/articles/manage_core_dump.html
如果您的过程意外死亡并且您有摧毁其性能的奢侈品,请尝试在truss下运行它。如果这是Solaris 10,那么dtrace在这里可能非常有用。