最近工作实现一个 7 * 24 小时的服务程序, 经常出现 "semop: Interrupted system call", "select failed: Interrupted system call".
经查是因为在 select, semop 的返回值为 -1 时没有对 errno 进行检查.
如果 "errno == EINTR", 则应该 continue.
这篇文章说得很好: http://blog.youkuaiyun.com/yin138/article/details/4366609