登陆不了服务器
The server refused to start a shell.
登陆服务器后执行ls命令报错:
1 2 | $ls –bash: fork: retry: Resource temporarily unavailable |
上面这段错误提示的本质是Linux操作系统无法创建更多进程,导致出错。
因此要解决这个问题需要修改Linux允许创建更多的进程。
修改Linux最大进程数
我们可以通过ulimit -a来查看当前Linux系统的一些系统参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ ulimit –a core file size (blocks, –c) 0 data seg size (kbytes, –d) unlimited scheduling priority (–e) 0 file size (blocks, –f) unlimited pending signals (–i) 62357 max locked memory (kbytes, –l) 64 max memory size (kbytes, –m) unlimited open files (–n) 65536 pipe size (512 bytes, –p) 8 POSIX message queues (bytes, –q) 819200 real–time priority (–r) 0 stack size (kbytes, –s) 10240 cpu time (seconds, –t) unlimited max user processes (–u) 1024 virtual memory (kbytes, –v) unlimited file locks (–x) unlimited |
在上面这些参数中,通常我们关注得比较多的是一个进程可打开的最大文件数,即open files。
系统允许创建的最大进程数量即是max user processes 这个参数。
我们可以使用 ulimit -u 4096 修改max user processes的值,但是只能在当前终端的这个session里面生效,重新登录后仍然是使用系统默认值。
正确的修改方式是修改/etc/security/limits.d/90-nproc.conf文件中的值。
1 2 3 4 5 6 | $ cat /etc/security/limits.d/90–nproc.conf # Default limit for number of user’s processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning.
* soft nproc 4096 |
我们只要修改上面文件中的4096这个值,即可。
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1982087,如需转载请自行联系原作者