使用Chef时,主管打开文件限制不会更改

时间:2015-01-13 23:35:02

标签: ubuntu chef supervisord ulimit

我正在修改机器上的/etc/security/limits.conf,然后在Chef配方中安装Supervisor。配方运行完成后,如果我运行cat /proc/<process id>/limits,我会看到:

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max open files            1024                 4096                 files

如果我登录机器并运行service supervisor restart,则会正确设置最大打开文件。但是,如果我在配方中运行此命令(在安装主管后,在配方的最后,任何东西),限制不会改变。直到我登录并手动运行该命令,限制才会更改。

如何使用厨师食谱获取主管更改的打开文件限制?操作系统是Ubuntu 12.04。

3 个答案:

答案 0 :(得分:8)

对于任何疲惫的google:您可能正在寻找the supervisor config中的minfds设置。此设置似乎对supervisord进程以及子进程都生效。我有许多其他策略,包括在执行实际程序之前启动一个设置限制的shell脚本,但这是唯一有用的。

答案 1 :(得分:0)

我没有在我的电脑上测试,因为我现在无法停止监督。但是如果你重新排序/ etc / rc目录?

# find /etc/rc* -iname "*super*"
/etc/rc0.d/K01supervisor
/etc/rc1.d/K01supervisor
/etc/rc2.d/S16supervisor
/etc/rc3.d/S16supervisor
/etc/rc4.d/S16supervisor
/etc/rc5.d/S16supervisor
/etc/rc6.d/K01supervisor

我遇到同样的问题Supervisord and ulimit to java app

答案 2 :(得分:0)

管理程序的实现使得进程可以作为非root用户启动,具有比允许用户更多的权限 - 绕过pam,limits.conf等。所以我怀疑这个问题是否会得到修复。看看https://github.com/Supervisor/supervisor/pull/229