꾸벅꾸벅

데몬

lovian 2006. 8. 29. 21:53
악마를 뜻하는 데몬이 아니라, 서비스를 제공하기 위해 항시 기동시키는 프로그램을 뜻한다.

참으로 재미있는 프로그램이다. 어찌 그렇게도 꼼꼼하게 만들어졌는지 보면 볼 수록 감탄사를 내뱉게 된다.
주석을 달아 두지 않으면 한참이나 따라가고 따라가야 이해할 만 해진다.
어디 그 뿐인가? 서비스의 가용성을 지원하기 위해서는 만사의 사태에 대비할 수 있어야 한다. 이말은 바로 "시스템 깊숙한 곳에 대한 내용을 숙지하고 있어야 한다"는 뜻이다. 내가 가장 좋아하는 분야가 아닌가? (물론 잘 안다는 말과는 별개이다.)

오늘 확인한 내용도 시스템과 관련이 있다.
HP-UX Itanium 에 포팅할 일이 있었다. 그러나 이상하게도 수퍼데몬의 자식들이 waitpid를 호출하지만, 그 반환 값이 ECHILD 인 것이다.
원인은 간단했다. 실제로는 pthread_create에서 오류가 발생했다. 오류코드를 따라 메시지를 확인한 결과 "Function is not implemented"
어처구니가 없는 오류다. 기존에도 다른 데몬을 포팅한 적이 있는데 같은 기반을 사용하는 데몬이 이럴 수는 없는 것이다.
아마도 HP-UX 내부에서는 posix 스레드의 구현이 오버로딩이 되지 않을까 하는 상상을 해보았다.
바로 -lpthread 옵션이 빠져 있었던 것이다.. 차라리 링크시 에러라도 냈으면 이런 고생 안했을 텐데. ㅡ,.ㅡ