zoukankan      html  css  js  c++  java
  • su: cannot set user id: Resource temporarily unavailable

    新装的一台linux 6.5主机在所有参数调优以后,运行起来要跑的程序后。再通过su - test时,提示如下:

    su: cannot set user id: Resource temporarily unavailable

    直接通过其他机器ssh www@xxx.xxx.xxx.xxx时,提示 Write failed: Broken pipe  。首先去查看了下/etc/profile文件,也有如下的ulimit配置:

    ulimit -S -c 0 > /dev/null 2>&1
    ulimit -HSn 65000
    ulimit -u 65000

    注:后面的-u参数为最大进程数,如果害怕其他用户通过fork死循环耗完本机资源,可以适当减少该值。默认该值为1024 。

    接着看/etc/security/limits.conf 文件,发现其下面已新增了nofile的值 ,如下:

    www           soft   nproc       65535
    www           hard   nproc       65535
    *           soft   nofile       65535
    *           hard   nofile       65535

    注:limits.conf文件实际上就是ulimit命令的配置文件。nproc为打开的最大进程数,nofile为打开的最大文件数。该处和上面的/etc/profile是重复设置的。实现上该处增加了以后,/etc/profile就不用再做配置的,而且该处配置更规范些,可以对用户进行限制 。

    即然以上两处都做了设置,还是有上面的提示,神奇了。后来又乱折腾了半天,突然想到之前在centos 6.3版本配置的时候,发现centos 6.X以后新增了一个/etc/security/limits.d/90-nproc.conf 文件,用于控制nproc 。这里面的默认配置是

    *          soft    nproc     1024
    root       soft    nproc     unlimited

    1024大小显然对我运行程序的test用户来说,太少了点。更改为65535后,再su - test时,问题解决 。

  • 相关阅读:
    Day 19
    Day 18
    Day17
    Day 16
    正则表达式(仅可输入中文英文数字以及英文逗号)
    Linux安装Nginx 并搭建图片服务器
    Mysql创建用户表并利用存储过程添加100万条随机用户数据
    Dubbo(高性能、轻量级的开源Java RPC框架) & RPC(远程过程调用)
    Redis
    OSI (开放系统互联(Open System Interconnection))
  • 原文地址:https://www.cnblogs.com/bethal/p/5505901.html
Copyright © 2011-2022 走看看