더 많이 사용하는 것 같더군요. Apache라던가, iPlanet Web Server 등이 그
렇습니다.
작업 디렉토리에 어쩌구.pid 등의 파일에 fork 시켜서 생성된 pid들을 주욱
써 주고, 서버 프로세스 종료시킬 경우는 앞에서 생성한 파일에서 pid들을
읽어서 그녀석들을 사살해버립니다.
원시적(?)일지 모르지만 제일 깨끗하고 간단하겠죠.
: : 어쩔수없이...
: :
: : server프로그램 (C언어로 작성)
: : 설정(GUI)프로그램을 따로 컴파일 (QT..즉 C++로 작성)
: : 하였습니다..
: :
: : 설정프로그램에서 kill로 server의 pid를 알면 죽일수있는건 아는데.
: : pid를 어떻게 알아내죠?
: :
: : c++에서 코드상에서..server프로그램 프로세서를 띄울수있나요?
: :
: : 설정프로그램에서 시작을 눌르면..server가 동작하고..
: : stop을 눌르면..죽는겁니다..^^;;
: :
: : 감사합니다..^^ :)
: :
: : --
: : PowerBook Ti
: fork를 사용해서 서버를 가동한다면 그냥 pid를 알수 있겠지만,
: 컴파일을 따로한 독립적인 프로그램이라면....
:
: 서버가 유일하게 하나만 동작하는 데몬이라고 할 때,
: 서버프로그램에서 /var/run/server.pid 정도 되는 파일을 생성해서,
: getpid()로 알아낸 Pid를 기록해 두고,
: 클라이언트에서 서버를 죽일때 그파일을 참조해서 종료시키는 방법과
:
: 아니면 직접 /proc 디렉토리를 열어서 각 프로세스 들의 정보를
: 검색하여서 pid를 알아내서 kill로 시그널을 주면 해결 할수 있습니다.
: (이름으로 비교 하겠죠? 참고로 /proc 밑에 있는 숫자가
: 시스템에서 동작중인 프로세서의 번호이고 그 디렉토리 안에
: 각 프로세스 들의 세부 정보들이들어 있습니다.
: 이걸 참조하면 프로세스 이름으로 Pid들 알아낼수 있습니다.
: man proc 해보시면 자세한 내용이 있습니다.)
:
: --
: 어렵지 않으니깐 해보세요.
: (정답은 아니지만 참고하시라고)