我正在修改机器上的/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。
答案 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
答案 2 :(得分:0)
管理程序的实现使得进程可以作为非root用户启动,具有比允许用户更多的权限 - 绕过pam,limits.conf等。所以我怀疑这个问题是否会得到修复。看看https://github.com/Supervisor/supervisor/pull/229