안드로이드의 init process 중에서 Daemon service 리스트를 병행 처리 해서 부팅 속도를 단축 시키려고 합니다.
서비스가 실제 시작되는 service_start() 함수를 보면 fork()를 한번 한 뒤 execve를 이용해서 서비스를 실행 하는 구조로 되어 있습니다.
그래서 fork를 두번 하는 구조 즉

{
if(fork()==0) { }
if(fork()==0) { }
}

이런 식으로 하면 될 것 같은데요. 그런데 문제가 있습니다.
실제로 서비스를 실행하기 위해 service_start()함수를 builtins.c의 service_start_if_not_disabled() 함수로 실행 하게 되어 있는것 같은데요.
맞는지요. 또한,  init.c에 보면 루프문이 있습니다.for(;;) 이렇게 폴링 방식으로 루프를 돌며 서비스를 재시작 하는 부분이 있는데요
http://blog.daum.net/baramjin/16010995 여기를 참고하셔서 마지막 부분을 보시면 나와있습니다.

서비스의 시작 방법이 무한루프문 에서 이루어 지는 것인지 아니면 service_start_if_not_disabled() 함수에서 이루어 지는 것인지 디버깅을 하면서 분석 하는데도 잘 모르겠습니다.

데몬 서비스의 구동 방식을 구체적으로 설명해 주시거나, 병렬 처리를 위한 팁을 좀 알려 주시면 감사하겠습니다..