如何配置 Hudson linux 从机来生成核心文件?
我在几个不同的 Fedora Core 9 Hudson Slave 上看到 glibc 偶尔出现分段错误。我尝试配置每个从站来生成核心文件并将它们放置在 /corefiles 中,但没有成功。
以下是我在每个 linux 从机上所做的操作:
1) 创建一个 corefile 存储位置sudo install -m 1777 -d /corefiles
2) 通过将以下内容添加到/etc/sysctl.conf,将 corefiles 定向到存储位置kernel.core_pattern = /corefiles/core.%e-PID:%p-%t-signal_%s-%h
3) 通过将以下内容添加到/,为所有用户启用无限的核心文件等/配置文件ulimit -c unlimited
是否需要一些额外的 Linux 魔法,或者我需要对 Hudson 从机或 JVM 做些什么?
感谢您的帮助
I've seeing occasional segmentation faults in glibc on several different Fedora Core 9 Hudson Slaves. I've attempted to configure each slave to generate core files and place them in /corefiles, but have had no luck.
Here is what I've done on each linux slave:
1) Create a corefile storage locationsudo install -m 1777 -d /corefiles
2) Directed the corefiles to the storage location by adding the following to /etc/sysctl.confkernel.core_pattern = /corefiles/core.%e-PID:%p-%t-signal_%s-%h
3) Enabled unlimited corefiles for all users by adding the following to /etc/profileulimit -c unlimited
Is there some additional Linux magic required or do I need to do something to the Hudson slave or JVM?
Thanks for the help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
编辑 /etc/sysctl.conf 后是否重新启动或运行“sysctl -p”(以 root 身份)?
另外,如果我没记错的话,ulimit 值是针对每个用户的,并且调用 ulimit 将无法在启动后存活。您应该将其添加到 /etc/security/limits.conf:
或者如果您不希望每个人都生成 coredump,则在启动 hudson 的脚本中调用 ulimit。
Did you reboot or run "sysctl -p" (as root) after editing /etc/sysctl.conf ?
Also, if i remember correctly, ulimit values are per user and calling ulimit wont survive a boot. You should add this to /etc/security/limits.conf:
Or call ulimit in the script that starts hudson if you don't wont everyone to produce coredumps.
我想通了:-)。
问题是 Hudson 将 bash shell 作为非交互式 shell 调用,这将绕过 /etc/profile 中的 ulimit 设置。解决方案是将 BASH_ENV 环境变量添加到 Hudson 从站,并将该值设置为设置了 ulimit -c unlimited 的文件。
I figured this out :-).
The issue is Hudson invokes the bash shell as a non-interactive shell, which will bypass the ulimit setting in /etc/profile. The solution is to add the BASH_ENV environmental variable tothe Hudson slaves and set the value to a file with ulimit -c unlimited set.