Mac OS X 10.6에서 ulimit의 이상한 동작


8

ulimit로 작업 할 때 매우 이상한 동작이 발생합니다. 난 그냥 새로운 껍질을 열어

Hector:~ robertj$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited 
open files                      (-n) 256 
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 532
virtual memory          (kbytes, -v) unlimited

좋아, 그것은 /etc/launchd.conf 내의 파일에 대한 제한을 무제한으로 설정 한 경우에도 기본값 인 것 같습니다. 그러나 그것은 또 다른 하루를위한 또 다른 질문입니다.

이제 파일 수를 1024로 늘리고 새 설정을 다시 살펴 보겠습니다.

 Hector:~ robertj$ ulimit -n 1024
 Hector:~ robertj$ ulimit -a | grep open
 open files                      (-n) 1024

알았어. 멋있는! 이제 설정을 다시 변경하겠습니다

Hector:~ robertj$ ulimit -n 512
Hector:~ robertj$ ulimit -a | grep open
open files                      (-n) 512

다시 한 번 잘 작동합니다. 더 높은 가치로 다시 바꿀 수 있습니다

Hector:~ robertj$ ulimit -n 1024
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Hector:~ robertj$ 

지금이게 뭐야?

내가 sudo하려고하면 오류가 발생하지 않지만 값도 변경되지 않습니다.

Hector:~ robertj$ sudo ulimit -n 1024
Password:
Hector:~ robertj$ ulimit -a | grep open
open files                      (-n) 512
Hector:~ robertj$ 

무슨 일이야?

나는 완전히 넘어졌다!

어떤 도움이라도 대단히 감사합니다 ...

로버트

답변:


18

당신을 혼란스럽게하는 두 가지가 있습니다. 첫 번째는 각 자원에 대한 하드 한계와 소프트 한계가 모두 있다는 것입니다. 둘 다ulimit -n 512 설정 하지만 소프트 한계 만 표시합니다. 하드 한계가 설정되면 줄일 수만 있습니다.ulimit -a

$ ulimit -n
256
$ ulimit -Hn  # There's no initial hard limit
unlimited
$ ulimit -n 512  # This sets both the hard and soft limits
$ ulimit -n
512
$ ulimit -Hn
512
$ ulimit -n 1024  # Once set, the hard limit cannot be increased
-bash: ulimit: open files: cannot modify limit: Operation not permitted

당신을 혼란스럽게하는 두 번째 일은 sudo ulimit그것이 생각하는 것을하지 않는 것입니다. (루트) 하위 프로세스를 생성하고 해당 하위 프로세스에 대한 열린 파일 제한 설정 한 다음 하위 프로세스를 종료합니다. 한계는 프로세스 별 설정이므로 변경을 sudo하면 유용한 기능이 없습니다.


안녕 고든, 좋은 설명 주셔서 감사합니다. 슬프게도 아직 귀하의 답변을 공표 할 수는 없지만 많은 도움이되었습니다!

하드 한계가 설정되면 하드 한계를 어떻게 늘립니까?
greg

@greg : 나는 당신이 할 수 있다고 생각하지 않습니다-그것이 어려운 한계가됩니다. 일부 운영체제에서 루트는 다른 프로세스의 하드 제한을 올릴 수 있습니다,하지만 난 OS X에서 가능조차도 생각하지 않는다
고든 데이비슨

감사. 실수로 너무 낮게 설정하여 시스템을 사용할 수 없게 만들었습니다. 재부팅으로 문제가 해결 된 것 같습니다.
greg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.