질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

아파치 스타트 시 에러가 나면서 안 됩니다.

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

참고 : http://www.forum.psoft.net/showthread.php?t=8428

critical_create(): semget() failed: No space left on device

이것은 프로그램상에서 서버의 공유메모리를 모두 잡아먹어서 생기는 에러입니다.

해결 방법은 리부팅이 가장 좋고
리부팅을 할수 없다면 semid를 뽑아서 삭제를 해 주면 됩니다.

삭제방법은 ipcs 를 이용해서 해당 어플리케이션의 semid 를 획득하고 ipcrm 명령으로 삭제하면 됩니다

사용예)
ipcs 를 실행하면 아마도 아래와 같이 나올것입니다.

Message Queues:
T ID KEY MODE OWNER GROUP

Shared Memory:
T ID KEY MODE OWNER GROUP

Semaphores:
T ID KEY MODE OWNER GROUP
s 524288 0 --rw------- apache apache
s 9240577 0 --rw------- apache apache
s 6684674 0 --rw------- apache apache
s 393219 0 --rw------- apache apache
s 1048580 0 --rw------- apache apache
s 23658501 0 --rw------- apache apache
s 12976134 0 --rw------- apache apache
s 393223 0 --rw------- apache apache
s 262152 0 --rw------- apache apache
s 262153 0 --rw------- apache apache

ipcrm 을 이용해서 삭제합니다.
ipcrm -s 524288



[용어설명 - 리눅스프로그래머를 위한 가이드 참고]

ipcs 명령어 (The ipcs Command)
ipcs 명령어는 모든 시스템 V IPC 객체의 상태를 얻는데 사용할 수 있다.
이 툴의 리눅스 버전은 Krishna Balasubramanian에 의해 제작되었다.

ipcs -q: 메세지 큐(message queues)만을 보여준다.
ipcs -s: 세마퍼(semaphore)만을 보여준다.
ipcs -m: 공유 메모리(shared memory)만을 보여준다
ipcs --help: 부가적인 아규먼트(arguments)

디폴트로 세가지 객체의 종류가 모두 보여진다. 다음의 간단한 ipcs의 출력을 살펴보자:

------ Shared Memory Segments --------
shmid owner perms bytes nattch status

------ Semaphore Arrays --------
semid owner perms nsems status

------ Message Queues --------
msqid owner perms used-bytes messages
0 root 660 5 1

여기서 우리는 "0"이라는 확인자(Identifier)를 가진 단일 메세지 큐(single message queue)를 볼 수 있다. 그것의 주인은 root 사용자이고, 660(-rw-rw--)의 8진 허가사항을 가지고 있다.
큐에는 한개의 메세지가 있고, 메세지의 총 크기는 5바이트이다.

ipcs 명령어는 IPC 객체에 대해 커널의 저장 조직을 엿볼 수 있는 가장 강력한 도구이다.

ipcrm 명령어 (The ipcrm Command)
ipcrm 명령어는 커널로 부터 IPC 객체를 제거하는데 사용된다. IPC 객체는 사용자 코드내에서 시스템 호출을 경우하여 제거될 수 있으며, 특히 개발 환경하에서 종종 수동으로 IPC 객체를 제거해야할 필요가 발생한다. 사용법은 간단하다.:

usage: ipcrm [ [-q msqid] [-m shmid] [-s semid]
[-Q msgkey] [-M shmkey] [-S semkey] ... ]

지울 객체가 메세지 큐(msg)인지 세마퍼(sem)인지 공유 메모리(shm)인지를 간단히 지정한다. IPC ID는 ipcs 명령어로 구할 수 있다. 확인자는 같은 타입안에서만 유일함으로 객체의 타입을 지정해 주어야만 한다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,811 개
  • 현재 접속자 :  116 명