#!/system/bin/sh
(
lCount=0
while :; do
sleep 1
lCount=$(($lCount + 1))
log -p v -t test "Running test number $lCount"
done
) &
lPid=$!
log -p v -t test "Started at $lPid"
exit 0
您好。 如果我将此代码放入Android设备上的文件并从shell手动执行,则文件将完全退出,同时保持子进程运行并每1秒打印一次logcat。但是,如果我将它放入init.d文件夹并重新启动手机,则不会释放脚本,并且根据init.d实现,手机将无法启动。
#!/system/bin/sh
(
lCount=0
while :; do
sleep 1
lCount=$(($lCount + 1))
log -p v -t test "Running test number $lCount"
done
) &
lPid=$!
log -p v -t test "Started at $lPid"
sleep 10
kill -9 $lPid
exit 0
如果我将此代码放入init.d中,脚本将在10秒后释放,因此脚本会在子进程下面继续运行。因此,如果脚本在下面继续,为什么它不会到达退出命令(并继续启动),直到子进程被杀死为止?
还有什么办法可以重写这个,以便它可以做我想做的事情,而无需添加额外的文件来执行?
答案 0 :(得分:0)
尝试添加:
# wait for android os
until [ `pidof com.android.systemui` != "" ]; do
sleep 1
done;
sleep 35;
脚本将首先等待操作系统。