我有以下脚本:
cat > /tmp/script.sh <<EndOfScript
#!/bin/sh
ulimit -n 8192
run_app
EndOfScript
Run Code Online (Sandbox Code Playgroud)
在本地运行顺利,总是好的.但是如果我尝试通过ssh远程运行它:
scp /tmp/script.sh user@host:/tmp/script.sh
ssh user@host "chmod 755 /tmp/script.sh; /tmp/script.sh"
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
ulimit: open files: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下命令:
ssh user@host "ulimit -n 8192"
Run Code Online (Sandbox Code Playgroud)
同样的错误.
看起来ssh远程命令执行对nofile限制强制执行1024次硬限制,但我无法找到如何修改此默认值.我试图修改/etc/security/limits.conf并重启sshd,仍然是同样的错误.
小智 12
而不是使用的解决方法/etc/initscript(不要让在该文件中一个错字.. :),如果你只是想sshd兑现你所做的设置/etc/security/limits.conf,你应该确保你UsePAM yes在/etc/ssh/sshd_config和/etc/pam.d/sshd清单session required pam_limits.so(或以其他方式包括其他文件这样做).
应该就是它的全部内容.
在旧版本的od openssh(<3.6 something)中,UsePrivilegeSeparation也存在一个问题,它阻止了限制,但它在较新版本中得到修复.
终于找到了答案:将以下内容添加到 /etc/initscript
ulimit -c unlimited
ulimit -HSn 65535
# Execute the program.
eval exec "$4"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14552 次 |
| 最近记录: |