我有以下脚本:
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,仍然是同样的错误。