注册

Linux报 “too many users” 异常的原因以及解决办法

  1. 原因

Linux 报 "too many users" 的原因是因为系统同时运行的用户数量达到了系统最大限制,因此无法再新建其他用户登录。

该限制主要受以下参数控制:

  • maxlogins:规定最多允许多少个用户同时登录系统;
  • nproc:规定单个用户创建的进程数上限;
  • nofile:规定单个用户同时持有的文件数上限;
  • nproc和nofile都可以通过ulimit命令查询和修改。

  • 解决办法

(1)查看当前系统的限制:

使用ulimit -a命令可以查看当前系统的限制情况。

例如,运行以下命令:

ulimit -a

会显示出系统的限制信息,其中可以看到一些提到了maxlogins、nproc和nofile等参数。

(2)临时调整用户的限制:

使用以下命令可以暂时提高某个用户的nproc限制(这里假设要提高用户test的限制):

ulimit -u 2048
su - test

其中 “-u” 参数代表要修改的参数是nproc,后跟改后的数值 2048。

(3)修改系统全局的限制:

如果要修改系统所有用户的限制,可以在 /etc/security/limits.conf 文件中设置,比如:

* hard nproc 2048

其中 * 代表所有用户,hard 代表限制是硬限制,nproc代表要修改的参数是nproc,2048是具体的数值,表示每个用户的nproc上限。

(4)为新用户设置默认限制:

可以在 /etc/profile 文件中设置默认限制,比如:

ulimit -u 1024

表示每个新创建的用户的nproc上限是1024。

综上所述,当Linux报 “too many users” 时,我们需要根据具体情况分析是哪个参数超了限制,然后采取相应的调整措施,以解决这个问题。