如何防止进程(脚本)在android中挂起(冻结)?

时间:2016-11-10 00:20:04

标签: android bash sleep freeze suspend

我有一个脚本,等待一分钟后运行一个命令

#!/sbin/busybox sh
while true; do
sleep 3600;
sync;
sysctl -w vm.drop_caches=2;
done;

但是一旦android设备进入睡眠状态,此脚本将在一秒钟后暂停。 每次设备唤醒时,脚本都会继续计数。 我如何使这个永远不会暂停(冻结)的脚本?我还将-1000设置为“oom_score_adj”以免被oom杀死。 谢谢

1 个答案:

答案 0 :(得分:0)

如何阻止Android设备以编程方式进入睡眠状态? 从root shell(例如adb shell),您可以使用以下命令锁定:

location /admin/identity$path {
  proxy_pass https://localhost:9443$path;
}

之后设备将保持清醒状态,直到您执行以下操作:

echo mylockname >/sys/power/wake_lock

使用' mylockname'。

的相同字符串

请注意,这不会阻止屏幕变黑,但会阻止CPU休眠。

请注意echo mylockname >/sys/power/wake_unlock /sys/power/wake_lock无线电(1001)和read-write系统(1000)usergroup,当然还有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;

reference
reference 1