반응형
IPC란 Inter-Process Communication의 약자로 내부 프로세서끼리 통신하는 3가지 방식을 말합니다.
3가지 방식은 message queue, shared memory, semaphores로
# ipcs
IPC status from as of Thu Jan 11 12:00:55 2001
Message Queue facility not in system.
T ID KEY MODE OWNER GROUP
Shared Memory:
m 0 0x5000081b --rw-r--r-- root root
m 1 0x0052e2ca --rw------- postgres other
m 2 0x0052e2c1 --rw------- postgres other
m 3 0x0052e2c7 --rw------- postgres other
Semaphores:
s 0 0x0052e2ce --ra------- postgres other
s 1 0x0052e2cf --ra------- postgres other
보통 program을 짤 때 shared memory가 예제도 많고 제일 쉬워서 많이 애용하지만 맛이 자주 가는데, 이럴땐
# ipcrm -m 0
위 예제에서 shared memory ID 0를 가진 놈을 강제 종료 시킬 떄
같은 식으로 Semaphores를 지울 려고 할 떄는
# ipcrm -s 1
그리고 ipcs 나 -a (모든 정보) 옵션 주어서 보면,
# ipcs
IPC status from as of Thu Jan 11 12:00:55 2001
Message Queue facility not in system.
T ID KEY MODE OWNER GROUP
Shared Memory:
m 1 0x0052e2ca --rw------- postgres other
m 2 0x0052e2c1 --rw------- postgres other
m 3 0x0052e2c7 --rw------- postgres other
Semaphores:
s 0 0x0052e2ce --ra------- postgres other
방금 지운 것이 안 나타나는 걸 알 수가 있죠?
보통 Solaris 2.X OS를 인스톨 하면 /etc/system 화일에 아무 값도 없는데, 맨 끝에 아래와 같이
# vi /etc/system
~~~~ BLOB BLOB
set shmsys:shminfo_shmmax=53554432
set shmsys:shminfo_shmmni=400
set shmsys:shminfo_shmseg=15
set semsys:seminfo_semmns=512
set semsys:seminfo_semmsl=300
set semsys:seminfo_semmni=100
set semsys:seminfo_semmnu=256
set msgsys:msginfo_msgmax=32768
set msgsys:msginfo_msgmnb=32768
set msgsys:msginfo_msgseg=10240
:wq!
# reboot
해 주면 위에서 해준 대로 system이 부팅할 떄 새로운 설정이 반영된다. 보통 Oracle이나 Postgres를 애써 Install한 초보자들이 자주 겪는 일이니 업무에 참조 바랍니다.
반응형