Init.rc:服务被杀死并重新启动

时间:2015-06-15 09:01:46

标签: android c shell init

我在init.rc中运行shell脚本作为服务,但它被终止并重新启动。

服务在init.rc中注册如下

service Storelog /system/bin/logwrapper /system/bin/store_log.sh
user root
disabled

和脚本store_log.sh是

#!bin/sh
while true 
do
 echo "Updating system log.."
 logcat > /data/system.log &
 sleep 600 
 echo "Killing background logcat."
 logpid=$!
 echo "logpid $logpid"
 kill $logpid
 logcat -c

done

我正在像boot_completed

这样的触发器上启动这个Storelog

此服务在一个循环被杀死并重新启动后启动。

我在这里缺少什么?一些许可? 任何建议都有帮助。

2 个答案:

答案 0 :(得分:0)

根据此页面:http://developer.android.com/tools/help/logcat.html

' -c'选项导致logcat退出

然而,到那时,' kill'已退出logcat。

建议将脚本修改为:(未经测试)

#!bin/sh
while true 
do
 echo "Updating system log.."
 logcat -d > /data/system.log &
 sleep 600 
done

答案 1 :(得分:-2)

您可以尝试将oneshot标签添加到服务

service Storelog / system / bin / logwrapper /system/bin/store_log.sh

用户root

禁用

单稳