나는 daemontools 서비스를 가지고있다. /service/myservice/run
다음을 포함합니다 :
#!/bin/sh
exec setuidgid someuser somecommand
이제 루트 셸에서 스크립트로 직접 실행하면, somecommand
정확한 ulimit (무제한)을 얻을 것입니다.
그러나 서비스를 시작할 때
svc -u /service/myservice
그때 somecommand
11000을 약간 상회하는 ulimit를 효과적으로 얻습니다.
svc (셸이 아닌)를 통해 시작된 경우에도 올바른 ulimit을 얻으려면 어떻게해야합니까?
이것은 FreeBSD 9 릴리스에 있습니다.
답변
넣어 ulimit
~ 안에 daemontools
스크립트, exec 위. svc
rlimits가 실행되는 스크립트에 전파되지 않습니다.
#!/bin/sh
ulimit -n 102400 #Increase file descriptor limit to 102400
exec setuidgid someuser somecommand
답변
실제로, 이것은 무엇입니까? 소프트 리밋 에 대한 것입니다.
시도해야합니다 :
exec setuidgid someuser softlimit -o 102400 somecommand
만나다: http://cr.yp.to/daemontools/softlimit.html
-o는 ulimit의 -n과는 달리 softlimit에 대한 파일 설명자를 엽니 다.