我怎样才能防止进程(脚本)在Android中暂停(冻结)?
我有一个脚本在等待一分钟后运行一个命令
#!/sbin/busybox sh
while true; do
sleep 3600;
sync;
sysctl -w vm.drop_caches=2;
done;
但是一旦Android设备进入睡眠状态,该脚本会在一秒钟后暂停。 每次唤醒设备后,脚本继续计数。 我怎样才能让这个脚本永不暂停(冻结)? 我也将-1000设置为“oom_score_adj”,不会被oom杀死。 谢谢
如何防止Android设备以编程方式进入休眠状态?
从根shell(例如adb shell)中,您可以使用以下命令来锁定:
echo mylockname >/sys/power/wake_lock
之后,设备将保持清醒状态,直到您执行以下操作:
echo mylockname >/sys/power/wake_unlock
与'mylockname'相同的字符串。
请注意,这不会阻止屏幕变黑,但会阻止CPU进入休眠状态。
请注意, /sys/power/wake_lock
对于user
无线电(1001)和group
系统(1000)是可read-write
,当然还有root用户。
所以我猜你的脚本是:
#!/sbin/busybox sh
echo mylockname >/sys/power/wake_lock;
while true; do
sleep 3600;
sync;
sysctl -w vm.drop_caches=2;
done;
echo mylockname >/sys/power/wake_unlock;
参考
参考1
上一篇: How can i prevent a process (script) from suspending (freezing) in android?