原地址:http://blog.csdn.net/evils798/article/details/7991431
- 安装oracle时候在创建oracle用户后,切换oracle用户时,报如下错
- [root@localhost ~]# su - oracle
- -bash: ulimit: max user processes: cannot modify limit: Operation not permitted
- 经查看结果是 忘记修改/etc/security/limits.conf
- 关于/etc/security/limits.conf解释及应用,看我转载如下文章
- limits.conf的格式如下:
- username|@groupname type resource limit
- username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
- type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 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
- 暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
- 永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件之一(例如 ~/.profile),即特定于 shell 的用户资源文件;或者通过编辑 /etc/security/limits.conf。
- 何谓core文件,当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 core文件是个二进制文件,需要用相应的工具来分析程序崩溃时的内存映像。
- 系统默认core文件的大小为0,所以没有创建。可以用ulimit命令查看和修改core文件的大小。
- $ulimit -c
- 0
- $ ulimit -c 1000
- $ ulimit -c
- 1000
- -c 指定修改core文件的大小,1000指定了core文件大小。也可以对core文件的大小不做限制,如:
- # ulimit -c unlimited
- #ulimit -c
- unlimited
- 如果想让修改永久生效,则需要修改配置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf。
- 2.nofile - 打开文件的最大数目
- 对于需要做许多套接字连接并使它们处于打开状态的应用程序而言,最好通过使用 ulimit –n,或者通过设置nofile 参数,为用户把文件描述符的数量设置得比默认值高一些
- vi /etc/security/limits.conf
- * soft nofile 10240 #软限制
- * hard nofile 10240 #硬限制
- 用ulimit -n 2048 修改只对当前的shell有效,退出后失效:
- 如A程序已经运行,此时ulimit -n为1024;之后ulimit -n 2048,这时在运行B程序;退出当前shell用户,再次进行shell,之后运行C程序;这时只有B程序用的是2048,其它用的都是1024
- [root@localhost ~]# vim /etc/security/limits.conf
- 增加如下内容
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
- 问题得到解决