我正在修改机器上的/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
如果我login到机器并运行service supervisor restart
,则最大打开的文件将被正确设置。 但是,如果我在配方中运行这个命令(安装主pipe之后,在配方的最后,任何东西),限制不会改变。 直到我login并手动运行那个限制改变的命令。
如何使用厨师食谱获得主pipe更改的打开文件限制? 操作系统是Ubuntu 12.04。
对任何疲惫的谷歌公司来说:你可能正在寻找监督员配置中的minfds
设置。 这个设置似乎对supervisord过程和孩子都起作用。 我有一些其他的策略,包括启动一个shell脚本,在执行实际程序之前设置限制,但这是唯一的工作。
我没有在我的电脑上测试,因为我现在无法阻止supervisord。 但是,如果你重新命令/ 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和ulimit到Java应用程序
主管的实施是这样的,一个进程可以作为一个非root用户启动,比该用户更多的特权是允许的 – 绕过pam,limits.conf等,所以我怀疑这个问题将被修复。 看看https://github.com/Supervisor/supervisor/pull/229