데몬 프로세서 질문입니다.
학교 과목 Term 프로젝트 관련하여 프로세서 정보를 넘겨 주는 소켓 프로그래밍 작성중입니다.
서버는 데몬으로 돌고 클라이언트에서 접속할때 마다 프로세서 정보를 넘겨주는 것이지요..
그런데 서버의 데몬이 클라이언트에서 접속을 하면 한번 동작을 하고 죽어 버립니다.
기타 사이트와 책을 찾아 보아도 이상이 없어 보이는데 도무지 답을 못찾겠더군요..
그래서 쉘스크립트로 매초마다 다시 살려 주려고도 해 보았으나
cron에서 초단위 설정이 안되더군요..
해결 방법좀 알려 주시기 바랍니다.
아니면 cron 에서 초단위 설정하는 방법이라도....^^*
동동주에 파전이 생각나는 비 내리는 날 강의실에서.....
52 // create children process
53 if( (pid = fork()) < 0 )
54 return (-1);
55 else if ( pid !=0 )
56 exit(0); // parent goes bye-bye
57
58 // child continues
59 setsid(); // become session leader
60 chdir("."); // change working directory
61 umask(0); // clear out file mode creation mask
62
63 // ignore SIGHUP(hang up) Signal
64 sact.sa_handler = SIG_IGN;
65 sact.sa_flags = 0;
66 sigemptyset(&sact.sa_mask);
67 sigaddset(&sact.sa_mask, SIGHUP);
68 sigaction(SIGHUP, &sact, NULL);
69
70 // close remains socket
71 for( i=0; i
72 close(i);
73
74 // create server socket
75 serv_sock = socket(PF_INET, SOCK_STREAM, 0);
76 if(serv_sock == -1 )
77 error_handling("socket() error!");
78
79 // initialize socket struct info
80 memset(&serv_addr, 0, sizeof(serv_addr));
81 serv_addr.sin_family = AF_INET;
82 serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
83 serv_addr.sin_port = htons(atoi(argv[1]));
84
디버깅을 strace나
디버깅을 strace나 ltrace로 돌려보시는게 좋겠습니다.
댓글 달기