AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 806412
Accepted
jouell
jouell
Asked: 2016-10-01 09:59:51 +0800 CST2016-10-01 09:59:51 +0800 CST 2016-10-01 09:59:51 +0800 CST

Linux - 打开文件继承

  • 772

为了进行测试,我将全局打开文件限制更改为 3000:

#sysctl -w fs.file-max=3000
fs.file-max = 3000

#cat /proc/sys/fs/file-nr
2016    0       3000

我创建了一些文件:

 i=1; while [ "$i" -le 1000  ]; do : >> "$i"; i=$(($i + 1)); done

我把它们打开了:

i=1; while [ "$i" -le 1000  ]; do less  "$i" & ; i=$(($i + 1)); done

我已经看到了我刚刚制造的混乱:

ksh: /bin/less: cannot execute [Too many open files in system]

我知道我达到了极限......

# cat  /proc/sys/fs/file-nr
3008    0       3000

如果我现在提高打开文件限制(这样我就可以使用另一个控制台进行 ssh 了)并且如果我在将打开文件最大值设置为 3000 后检查最近生成的一个较少的文件,我会看到:

# cat /proc/28282/limits  | grep 'Max open files'
Limit                     Soft Limit           Hard Limit       Units
Max open files            1024                 16384            files

“硬限制”仍然设置得很高,虽然没有提到 3000。所以我们达到了系统限制,而不是每个进程的限制。

为什么不指示新创建的进程继承 3000 vs 16384?

我用一个新的 shell 登录了一个新的终端,那么为什么我的 shell 不被告知 3000 并将其传递给 less 呢?

这是一个 2.6.32 内核

ulimit linux-kernel
  • 1 1 个回答
  • 298 Views

1 个回答

  • Voted
  1. Best Answer
    jouell
    2016-10-01T13:35:47+08:002016-10-01T13:35:47+08:00

    根据此链接Ulimit 文件描述符限制不适用于特定进程

    我引用:

    “/etc/security/limits.conf 是 pam_limits 的一部分,因此在此文件中设置的限制由 pam_limits 模块在登录会话期间读取。登录会话可以通过 ssh 或通过终端”

    /etc/sysctl.conf 是系统范围的全局配置,我们不能在这里设置用户特定的配置。它设置了所有用户/进程可以使用的最大资源量”

    /etc/sysctl.conf 不是设置它的正确位置。

    我需要全面调查 /etc/security/limits.conf 和“pam_limits”

    • 0

相关问题

  • 如何增加 Linux 上的打开文件限制?

  • 大容量系统的实用最大打开文件描述符 (ulimit -n)

  • AIX 上的 ulimit 强制执行?

  • 如何在 Solaris 10 中设置 ulimit

  • OS X (10.5) 上指定的默认 ulimit 在哪里?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve