semget: 초기값 설정 실패

고객지원 지식기반 (kfr_41)

Symptom:

프로그램이 다음 에러 메시지를 냅니다.
       semget: Initialization failed. errno 22

Cause:

이 문제는 야스트에서 가끔씩 나타나지만 SCO나 SVR4 바이너리들에서도 나타날 수 있습니다.

Solution:

리눅스에서 semaphores 숫자는 커넬에서 직접 입력해 주어야 합니다. 이 목적을 위해서 /usr/src/linux/include/linux/sem.h 파일에 다음 변수들이 들어 있습니다.
#define SEMMNI  128             /* ?  max # of semaphore identifiers */
#define SEMMSL  32              /* <= 512 max num of semaphores per id */
이 값들을 다음과 같이 올려 줄 수 있습니다.
#define SEMMSL  64              /* <= 512 max num of semaphores per id */
이렇게 해 준 다음에 새로운 커넬을 컴파일해 줍니다.(make clean 하십시오) semaphores 를 사용하는 프로그램들이 하나도 없을 때 이것이 동작합니다.

이 방법은 1.2.13과 2.0 버전 등의 커넬에서 모두 동작합니다.


키워드: YARD, SEMGET, SCO, SVR4, SEMAPHORES

SDB-kfr_41, Copyright SuSE Linux AG, Nrnberg, Germany - 버전: 02. Mr 2001
SuSE Linux AG - 최근에 만들어진 : 07. Mr 2001 에 의해 kmyoo (sdb_gen 1.40.0)