有时候linux执行 su 切换用户会出错
[root@gyvm-4 ~]# su - hdfs
su: cannot set user id: Resource temporarily unavailable
原因是linux操作系统默认最大允许进程数是1024,当前节点hdfs用户开启进程数超过了该数字
可以看到hdfs用户开启了1622个进程,已经超过了默认值
[root@gyvm-4 limits.d]# lsof -u hdfs | wc -l
1622
修改 /etc/security/limits.d/90-nproc.conf,将soft nproc的值从1024改为4096,完成
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
保存后可以正常切换用户。
[root@gyvm-4 limits.d]# su - hdfs
[hdfs@gyvm-4 ~]$