데몬이 뭐냐하면 시스템에 관련된 후위 프로세스를 말하는데요. 즉 시스템을 시작하면 시스템에 필요한 프로세스들이 있는데 이것들이 데몬이죠.
telnetd daemon, ftpd daemon, httpd daemon, inetd daemon, squid daemon, sendmail daemon, bind nameserver daemon, routed daemon 뭐 이런 데몬들이 있다는데 어려운건 다 집어치우고, 그냥 쉽게 말해서 계속 메모리에 상주해 있는겁니다. 대신 부모프로세스는 유닉스의 가장 최상단 프로세스인 init프로세스의 ID인 1입니다.
이눔을 죽일 때에는 KILL로 밖에 못죽이는 것이죠.
간단합니다. 그냥 자식 프로세스를 생성하고, 부모를 죽여버리면 돼요-_-;
저기서 보면 fork()를 하면 자식 프로세스는 pid를 0을 받습니다. 그리고 부모프로세스는 0보다 큰 값을 가집니다. 그래서 0보다 크면 부모프로세스를 종료시키죠.
종료가 된 뒤에 이 자식프로세스가 유닉스의 최상단 프로세스인 init프로세스의 id인 1을 가져 올 때 까지 기다립니다. 3초간-_-;
그런다음 와일문을 10초마다 daemon!을 출력하도록 시도해봅시다.
그러면 이 프로세스는 백그라운드에서 뜨고 있는 프로세스가 됩니다.
저기 보시면 부모프로세스 아이디가 1임을 볼 수 있습니다.
telnetd daemon, ftpd daemon, httpd daemon, inetd daemon, squid daemon, sendmail daemon, bind nameserver daemon, routed daemon 뭐 이런 데몬들이 있다는데 어려운건 다 집어치우고, 그냥 쉽게 말해서 계속 메모리에 상주해 있는겁니다. 대신 부모프로세스는 유닉스의 가장 최상단 프로세스인 init프로세스의 ID인 1입니다.
이눔을 죽일 때에는 KILL로 밖에 못죽이는 것이죠.
간단합니다. 그냥 자식 프로세스를 생성하고, 부모를 죽여버리면 돼요-_-;
저기서 보면 fork()를 하면 자식 프로세스는 pid를 0을 받습니다. 그리고 부모프로세스는 0보다 큰 값을 가집니다. 그래서 0보다 크면 부모프로세스를 종료시키죠.
종료가 된 뒤에 이 자식프로세스가 유닉스의 최상단 프로세스인 init프로세스의 id인 1을 가져 올 때 까지 기다립니다. 3초간-_-;
그런다음 와일문을 10초마다 daemon!을 출력하도록 시도해봅시다.
그러면 이 프로세스는 백그라운드에서 뜨고 있는 프로세스가 됩니다.
저기 보시면 부모프로세스 아이디가 1임을 볼 수 있습니다.