ulimit -d로 설정을 하면 setrlimit에 RLIMIT_DATA로 커널에 설정이 들어가게 됩니다.
RLIMIT_DATA는 sbrk시스템 콜에서 할당하는 주소의 영역을 제한합니다.
따라서, 제한을 넘을 방법이 없기 때문에, 시그널이 없습니다.
실제 제한이 되는 것은 sbrk시스템콜이 실패하는 것인데, 일반적으로 사용자 애플리케이션은
malloc을 쓰기 때문에, malloc이 실패할 때 설정된 제한을 넘었다고 보면 됩니다.
테스트 프로그램을 저 환경에서 돌렸더니 총합이 512MB 이상 (기본이 512MB이므로) malloc을 했을 경우 프로세스가 abort가 되더라구요. 문서를 찾아보니 MALLOC_OPTIONS를 깔짝깔짝 거리면 abort 안 되게 할 수 있다는데 이~상하게 안 되더라구요. 제 소유 서버가 아니라 root로 들어갈 수는 없고 해서 방법을 연구 중입니다.
ulimit -d로 설정을
ulimit -d로 설정을 하면 setrlimit에 RLIMIT_DATA로 커널에 설정이 들어가게 됩니다.
RLIMIT_DATA는 sbrk시스템 콜에서 할당하는 주소의 영역을 제한합니다.
따라서, 제한을 넘을 방법이 없기 때문에, 시그널이 없습니다.
실제 제한이 되는 것은 sbrk시스템콜이 실패하는 것인데, 일반적으로 사용자 애플리케이션은
malloc을 쓰기 때문에, malloc이 실패할 때 설정된 제한을 넘었다고 보면 됩니다.
-------------------------
You need Python
You need Python
FreeBSD 5.2.1-RC ^ -^)
FreeBSD 5.2.1-RC
^ -^) 그렇군요.
테스트 프로그램을 저 환경에서 돌렸더니 총합이 512MB 이상 (기본이 512MB이므로) malloc을 했을 경우 프로세스가 abort가 되더라구요. 문서를 찾아보니 MALLOC_OPTIONS를 깔짝깔짝 거리면 abort 안 되게 할 수 있다는데 이~상하게 안 되더라구요. 제 소유 서버가 아니라 root로 들어갈 수는 없고 해서 방법을 연구 중입니다.
언제나 맑고픈 샘이가...
http://yubink.com - 강아지 필요하세요?
http://purewell.biz - 헙!!
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
댓글 달기