2016-11-10 90 views
-1

我有等待後運行一個命令一段分鐘我如何防止在android中掛起(凍結)一個進程(腳本)?

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

腳本但隨着Android設備進入睡眠狀態,該腳本後,一些二,儘快暫停。每次設備喚醒時,腳本繼續計數。 如何讓這個腳本永不暫停(凍結)?我也將-1000設置爲「oom_score_adj」,不會被oom殺死。 謝謝

回答

0

如何防止Android設備以編程方式進入睡眠狀態?
從shell根(如亞行外殼),您可以鎖定有:

echo mylockname >/sys/power/wake_lock 

此後該設備將保持清醒,直到你做:

echo mylockname >/sys/power/wake_unlock 

隨着「mylockname相同的字符串」。

請注意,這不會阻止屏幕變黑,但會阻止CPU進入休眠狀態。

請注意,/sys/power/wake_lockread-writeuser無線電(1001)和group系統(1000),當然,根。

所以我想你的腳本是:

#!/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

+0

要命,thanks..so我只需要我的劇本名爲 「腳本」 或script.sh」發送到sysfs.right?!還有什麼其他的如果有相同的名字進程?我可以用PID做這個嗎? –

+0

'mylockname'只是一個字符串,任何字符串。將代碼放到你的腳本中,它會運行。 –

+0

上帝保佑你,你讓我走向正確的路。看看發送字符串到wake_lock sysfs的來源,os它可以是任何重要的部分是哪個進程或任何發送到wake_lock sysfs.if我發現任何其他事情我會更新這裏否則這是正確的。巨大的感謝之人 –