Service
-------
init process 는 다음을 통해서 각종 service를 control함.
SIGCHLD signal handler를 정의해서, service의 상태를 파악함
service가 죽는 경우 SIGCHLD signal이 날아오고, 이 signal로 어떤 service가 죽었는지/시작했는지 파악하고, 각 service의 flag에 따라서 다음 행동 (해당 service를 다시 시작하거나, system을 restart하거나 (critical service))을 결정함.
[property_service.c] '/dev/socket/property_service' socket을 열고 message를 기다림 (PROP_SERVICE_NAME).
'property_set(...)' interface를 통해서, property_service socket에 message가 써지고, init process의 property service부분에서 이 message를 handling함.
'ctl.start/stop/restart' 는 source code에 hard-coded된 특수한 message로, 해당 이름의 service를 control한다.
잊어먹지 않기 위해서 일단 기록해 둠....
'Domain > Android' 카테고리의 다른 글
[Android] Developing Android-native-library on 64bit build machine (0) | 2011.09.15 |
---|---|
[Android] Creating minimum set of Android (Kernel + adbd + ueventd) for Android kernel test. (0) | 2011.05.31 |
[Android] Handling kernel device uevent in userspace. (0) | 2011.04.20 |
[Android][GNU] establishing gnu system root on android devices (0) | 2011.03.18 |
[Android] NDK issues (found) (0) | 2011.02.15 |