failed to execute /bin/bash: Resource temporarily unavailable(Linux系统root无法通过su切换到某个普通用户)
由此报错,可以看到是由于进程过多,资源限制住了,主要检查如下文件:
环境centos7.6
[root@rac02 ~]# cat /etc/security/limits.conf
orgrid soft nproc 2047
orgrid hard nproc 16384
orgrid soft nofile 131072
orgrid hard nofile 131072
orgrid soft core unlimited
orgrid hard core unlimited
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft core unlimited
oracle hard core unlimited
检查实际进程
[root@rac2 ~]# ps -U grid | wc -l
1965
[root@rac2 ~]# lsof | grep grid | wc -l
32372
[root@rac2 ~]# ps auxww | grep -i grid | wc -l
126
通过比较,发现grid soft nproc 设置的值比较小了一点,必须加大
调整grid soft nproc到4096保存。
退出重新登录再切换,已经正常。
相关参数说明:
username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的最大值不能超过hard的值。用 – 就表明同时设置了 soft 和 hard 的值。
resource:
core – 限制内核文件的大小
date – 最大数据大小
fsize – 最大文件大小
memlock – 最大锁定内存地址空间
nofile – 打开文件的最大数目
rss – 最大持久设置大小
stack – 最大栈大小
cpu – 以分钟为单位的最多 CPU 时间
noproc – 进程的最大数目
as – 地址空间限制
maxlogins – 此用户允许登录的最大数目
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so ------有些是可以直接生效