터미널과 통신하지 않는다는 것을 말합니다. 그러니까 유저와 비대화모드가 된다는 거죠.
보통 프로그램을 실행시킬때는 터미널에서 실행시키게 되는데 그러면 터미널의 제어권안에 들어가는 거죠. pid를 보시면 알수 있습니다.
그래서 데몬들은 통상 아래와 같이 코드를 작성합니다.
int main()
{
switch(fork())
{
case -1 :
exit(1);
case 0:
setsid(); // 이거이 꼭 필요하니 man을 활용하시길..자체 세션을 같는겁니다. 이거이 없으면 fork하나 마나입니다.
break;
default:
exit(0);
}
// 계속되는 자식 프로세스....
}
또한 이런방식으로 코딩하지 않으면 chkconfig로 ntsysv에 등록이 안되는 걸루 알고 있습니다..
백그라운드에서 돈다는 것은...
터미널과 통신하지 않는다는 것을 말합니다. 그러니까 유저와 비대화모드가 된다는 거죠.
보통 프로그램을 실행시킬때는 터미널에서 실행시키게 되는데 그러면 터미널의 제어권안에 들어가는 거죠. pid를 보시면 알수 있습니다.
그래서 데몬들은 통상 아래와 같이 코드를 작성합니다.
또한 이런방식으로 코딩하지 않으면 chkconfig로 ntsysv에 등록이 안되는 걸루 알고 있습니다..
댓글 달기