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

무한루프 프로세스 죽이기??

작성자 정보

  • 이경섭 작성
  • 작성일

컨텐츠 정보

본문

아래 소스는 채팅소스 일부분입니다.

while(1)  //무한 루프를 돌리기 위해서..
{
  $fp=fopen($chat_file,"r");  //파일열기
  $line=fgets($fp,10000);  //한 줄을 읽어 들여..변수에 저장
  if($line != $lastline && $line != ""){  //기존에 남아 있는 변수의 값과 같은지를 비교.
    $line=stripslashes($line);
    echo "$line
"; //읽어들인 줄을 출력
  $lastline=$line; //남아 있는 변수와의 비교를 위해서 다른 변수에 따로 저장
  }
 flush();  //출력버퍼를 비워야겠죠
 usleep(1);  //고스톱으로 얘기 하면..."光"팔고 한판 쉬면서 오줌누고...정도...*^^*
 fclose($fp);  //열었던 파일을 닫아야겠죠...
}


채팅 프로그램인데요
위에 소스를 보시면 아시겠지만
무한루프 돌면서 채팅파일을 열어서 이전값이랑 입력한값이 틀리면
내용을 뿌리는 형식인데요...
문제는 부하는 안 생기는데
채팅창을 닫아도 서버에서는 프로세스가 계속 떠 있네요.
pstree해보니깐 httpd의 수치가 계속 올라가더라구여... 물론 mysql까지...

첨엔 어디서 쌓이나 싶어서
lsof | grep httpd | grep /home/
이걸로 학인하니깐 아래처럼 저 소스위치가 나오더라구여...
httpd    16003  apache  cwd    DIR      3,11      4096    5374237 /home/aaaa.co.kr/chating
httpd    16003  apache  13r  REG      3,11      1380    5374238 /home/aaaa.co.kr/chating/chating.php

안죽고 계속 떠 있으니깐 나중에는 서버가 느려터져서리...mysql접속자도 100명을 넘어서 에러나고..-_-; 
찾아내서 죽이는 방법이나...프로세스가 계속 안 쌓이게 할 방법이 없을까요?
여건상 리로드방식,자바,엑티브x로 개발된 채팅은 못하게 되서리...-_-;

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  638 명