Ich habe einen nativen Android-Dienst, der von einer Eigenschaft über die GUI gestartet und gestoppt wird. Die Befehle sind zu starten und den Dienst in init.rc zu stoppen wie folgt:Gibt es eine Möglichkeit, Android-Dienste in init.rc anmutig (ohne SIGKILL) zu stoppen?
service myservice /system/bin/myservice
class late_start
user my_service
disabled
on property:persist.myapp.myservice.enable=1
start myservice
on property:persist.myapp.myservice.enable=0
stop myservice
Es gibt JNI Speicherressourcen, die, wenn der Dienst beendet wird gereinigt werden müssen, aber es scheint, dass der Dienst über gestoppt wird ein SIGKILL:
6944 6974 V myservice: IMyProcessA::onTransact()
712 712 I AP_KERNEL: init: Service 'myservice' is being killed...
510 510 I ServiceManager: service 'ProcessA.MyService' died
656 656 V ProcessA: ProcessA::NotificationClient::binderDied()
656 656 V ProcessA: removeNotificationClient() 0xb6bc60a8, pid 6944
656 656 V ProcessA: ProcessA::NotificationClient::~NotificationClient()
712 712 I AP_KERNEL: init: Service 'myservice' (pid 6944) killed by signal 9
712 712 I AP_KERNEL: init: Service 'myservice' (pid 6944) killing any children in process group
Da es keine Möglichkeit gibt, ein SIGKILL aufzuräumen abzufangen, gibt es Optionen für die init.rc ‚stop myservice‘, die das Beendigungssignal an etwas ändern kann ich wie SIGTERM abfangen kann, beispielsweise?