ulimit -SHn 65535
时间: 2023-12-13 10:04:24 浏览: 146
这是一个用于设置 Linux 系统的软件限制的命令,其中参数 -S 表示设置软限制,-H 表示设置硬限制,-n 表示设置最大打开文件描述符数的限制。这个命令将最大打开文件描述符数的软限制设置为 65535,意味着系统中的任何进程都不能打开超过 65535 个文件描述符。硬限制是软限制的上限,只能由超级用户或者具有 CAP_SYS_RESOURCE 权限的进程来修改。
相关问题
ulimit-SHn
ulimit -SHn是用于设置系统最大打开文件数的命令。其中,-S表示软限制(soft limit),-H表示硬限制(hard limit),n表示打开文件数。
通过ulimit -SHn命令,你可以设置当前会话的最大打开文件数为65535。这个设置对于负载较大的服务器来说是很有用的,因为默认情况下,新安装的Linux系统只有1024的最大打开文件数。
需要注意的是,ulimit命令只能做临时修改,重启后会失效。如果你想每次启动时都生效的话,可以将ulimit -SHn 65535添加到/etc/rc.local文件中。
#!/bin/bash while : do nginxpid='ps -C nginx --no-header | wc -l' if [ $nginxpid -eq 0 ];then ulimit -SHn 65535 /usr/local/nginx/sbin/nginx sleep 5 nginxpid='ps -C nginx --no-header | wc -l' if [ $nginxpid -eq 0 ];then /etc/init.d/keepalived stop fi fi sleep 5 done具体分析每一行代码
这是一个简单的 Bash 脚本,目的是在 Nginx 服务停止时重启它并检查是否成功,如果失败则停止 keepalived 服务。下面是每一行代码的分析:
1. `#!/bin/bash`
这是脚本的 shebang,指定了脚本使用的解释器,这里是 bash。
2. `while :`
这是一个无限循环,其条件永远为 true。
3. `nginxpid='ps -C nginx --no-header | wc -l'`
这行代码获取当前运行的 nginx 进程数,使用 ps 命令和 wc 命令实现。
4. `if [ $nginxpid -eq 0 ];then`
如果 nginx 进程数为 0,即没有 nginx 进程在运行,则执行下面的代码。
5. `ulimit -SHn 65535`
设置文件句柄数的最大值为 65535。
6. `/usr/local/nginx/sbin/nginx`
启动 nginx 服务。
7. `sleep 5`
等待 5 秒钟,让 nginx 服务启动。
8. `nginxpid='ps -C nginx --no-header | wc -l'`
再次获取当前运行的 nginx 进程数。
9. `if [ $nginxpid -eq 0 ];then`
如果 nginx 进程数为 0,即 nginx 启动失败,则执行下面的代码。
10. `/etc/init.d/keepalived stop`
停止 keepalived 服务,因为 nginx 服务无法正常启动,可能是由于资源限制或其他问题引起的,这时候停止 keepalived 可以避免出现服务故障和资源争用等问题。
11. `fi`
结束 if 语句。
12. `sleep 5`
等待 5 秒钟,让循环继续执行。
13. `done`
结束 while 循环。
阅读全文