안녕하세요.


오늘도 간략한 팁을 한가지 적어보겠습니다.


프로그램을 하시다보면 ctrl + c를 이용하여 프로그램을 종료하는 경우가 빈번 합니다.


물론 Ctrl + c 가 좋지 않다는 말씀을 드리려고 한건 아닙니다.^^


만약 작성하신 프로그램에 세마포어, 메시지 큐, 혹은 공유메모리를 사용하는 프로그램이 있었고, 


이 프로그램이 종료될 때 세마포어, 메시지 큐, 혹은 공유메모리를 해제하지 않고 Ctrl + c를 할 경우!!


프로그램에서는 계속 요청만 하기 때문에 언젠가는 할당을 못할 뿐더러 프로그램을 정상적으로 실행하시려면 


ipcrm을 이용하여 어떤 것인지 모르겠지만 요청 하셨던 세마포어, 메시지 큐, 혹은 공유메모리 중 하나를 해제 하셔야 할 경우가 있습니다.


그런데 문제는 여기서 부터입니다.


만약 공유 메모리 요청하는 프로그램을 100번 실행했다면, ipcrm을 100번 해야되는 정말 짜아증 나는 결과를 초래하게 됩니다...ㅠㅠ


자! 이 때 다음과 같이 하시면 됩니다!


공유메모리를 많이 요청하셨을 경우 10개씩 지우는 방법

ipcs -m | cut -d " " -f2 | tail -10 | head -9 | xargs sudo ipcrm shm


세마포어를 많이 요청하셨을 경우 10개씩 지우는 방법

$ ipcs -s | cut -d " " -f2 | tail -10 | head -9 | xargs sudo ipcrm sem


메시지큐를 많이 요청하셨을 경우 10개씩 지우는 방법

$ ipcs -q | cut -d " " -f2 | tail -10 | head -9 | xargs sudo ipcrm msq ( 사실 이 명령은 아직 못해봤어요^^ 안되면 신고해주세요 ㅠㅠ)


tail과 head를 조정하시면 더 많이 지울 수 있습니다!


참고하시면 좋을것 같습니다.^^