문제

다음 스크립트가 있습니다.

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를 다시 시작하려고 시도했습니다.

도움이 되었습니까?

해결책 2

Fiannly는 답을 알아 냈습니다 : /etc /initscript에 다음을 추가하십시오.

ulimit -c unlimited
ulimit -HSn 65535
# Execute the program.
eval exec "$4"

다른 팁

해결 방법을 사용하는 대신 /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)에서도 한계가 존중되는 것을 방지하는 사용 - 프리 빌 레지 영점에 문제가 있었지만 새로운 버전으로 수정되었습니다.

ulimit 수퍼 유행어 권한이 실행되어야합니다.

스크립트를 실행하려는 서버에서 해당 값을 수정하도록 서버 관리자에게 요청하는 것이 좋습니다.

Linux에서 /etc/secutiry/limits.conf를 수정하여 그렇게 할 수 있습니다. 다음은 도움이 될 수있는 예입니다.

*               soft    nofile          8192
*               hard    nofile          8192

그 후에는 sshd를 다시 시작할 필요가 없습니다. 로그 아웃하고 다시 로그인합니다.

나는 당신이 같은 질문을 할 것을 제안합니다 ServerFault 그렇지만. 서버 측 관련 답변을 더 잘 얻을 수 있습니다.

시작 스크립트를 확인하십시오 (/etc/profile, ~/.??*) 전화를 위해 ulimit. IIRC, 일단 한계가 부과되면 더 이상 넓어 질 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top