当前位置: 首页 > 知识库问答 >
问题:

Linux:如何改变进程可以打开的最大文件数?

刘建中
2023-03-14

我必须在一组机器上执行一个进程。集群的大小为100级。所以我不能手动执行进程,我必须通过脚本执行它们(脚本使用ssh,目前我使用python-paramiko)。这些进程打开的tcp套接字数超过1024个(Linux的默认限制)所以我需要使用{ulimit-n 10000}来更改它。这只对该shell会话进行更改。并且该命令仅适用于root用户。所以我的剧本不能做到这一点。我尝试执行这个命令

sudo su && ulimit -n 10000 && <commandToExecuteMyProcess>

但这没用。“sudo su”后面的命令根本没有执行。它们只在我注销su会话时执行。本文展示了永久地进行更改的方法。但是当我打开limits.conf时,我在那里什么也没找到。它只有一些注释。

请建议我一些方法,以增加限制永久或改变它的脚本为每个会话。

共有1个答案

华良才
2023-03-14

这不是它的工作方式:sudo su只是打开一个新的shell,以便您可以以root用户的身份引入命令,在退出shell后,它以普通用户的身份执行该行的其余部分。

第二:这是一个特例,因为ulimit实际上不是一个程序,而是一个bash shell内置命令,所以必须在bash中使用它,这就是为什么像sudo ulimit-n 10000这样的东西不能工作:sudo找不到那个程序,因为它不存在。

所以,唯一的选择有点难看,但很管用:

 sudo bash -c 'ulimit -n 10000 && <command>'

'...'中的所有内容都将在根用户的bash会话中执行。

 类似资料:
  • 问题内容: 我用Python打开了一个8 MB的文件,因为我想批量更改各种类型的文件名。我仔细检查并将文件加载到字符串中,然后使用字符串方法replace替换了所有内容。然后我注意到只有一半的文件被替换了。好像Python没有完全打开文件。 我必须在Python的范围内发挥某种字符串大小限制或最大文件大小限制吗? 请参阅Python搜索中的代码并替换未正确替换的代码。 我已更改为建议的代码。缓冲区

  • 本文向大家介绍linux的最大打开文件数限制修改方法,包括了linux的最大打开文件数限制修改方法的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了关于linux最大打开文件数限制修改的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: linux会为每个用户登录系统打开最大文件数都有限制, 这个限制通过 ulimit -n 可以看到, 一般是 1024 .

  • 本文向大家介绍增加Linux中最大打开文件数,包括了增加Linux中最大打开文件数的使用技巧和注意事项,需要的朋友参考一下 如果您使用的是Linux,则必须多次遇到“打开文件过多(24)”错误。Linux操作系统提供了一种限制每个用户可以使用的文件数量的方法。本文提供有关如何增加Linux操作系统中打开的文件或文件描述符数量的见解。 ulimit命令可以控制shell或进程,并且需要以root用户

  • 问题内容: 运行我的应用程序时,有时会出现关于的错误。 运行报告该限制为1024。如何将限制增加到1024以上? 编辑 导致权限错误。 问题答案: 您可以随时尝试执行。这只会重置当前shell的限制,并且您指定的数字不得超过硬限制 每个操作系统在配置文件中都有不同的硬限制设置。例如,可以在从/etc/system引导时设置Solaris上的硬打开文件限制。 在OS X上,必须在/etc/sysct

  • 本文向大家介绍Linux 改变文件大小的方法,包括了Linux 改变文件大小的方法的使用技巧和注意事项,需要的朋友参考一下 函数原型:   函数ftruncate会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件大小比参数length大,则超过的部分会被删去。      test.c 总结 以上所述是小编给大家介绍

  • 问题内容: 是否可以为工作过程增加“最大打开文件数”参数?我的意思是这个参数: 感谢您的建议 问题答案: 作为系统管理员 :在大多数Linux安装中,此文件控制此文件;它允许您设置每个用户的限制。您需要一条像这样的线。 在一个进程内 :getrlimit和setrlimit调用控制大多数每个进程的资源分配限制。控制文件描述符的最大数量。您将需要适当的权限才能调用它。