【发布时间】:2010-12-25 15:12:49
【问题描述】:
我有以下脚本:
cat > /tmp/script.sh <<EndOfScript
#!/bin/sh
ulimit -n 8192
run_app
EndOfScript
在本地运行流畅,一直没问题。但是如果我尝试通过 ssh 远程运行它:
scp /tmp/script.sh user@host:/tmp/script.sh
ssh user@host "chmod 755 /tmp/script.sh; /tmp/script.sh"
我得到了错误:
ulimit: open files: cannot modify limit: Operation not permitted
我还尝试了以下命令:
ssh user@host "ulimit -n 8192"
同样的错误。
看起来 ssh 远程命令执行正在对 nofile 限制执行 1024 硬限制,但我不知道如何修改此默认值。我尝试修改/etc/security/limits.conf并重启sshd,还是一样的错误。
【问题讨论】:
-
终于找到了正确答案:在/etc/initscript中加入: ulimit -c unlimited ulimit -HSn 65535 # 执行程序。 eval exec "$4"