我正在尝试在两种系统状态下运行某些命令,而屏幕处于启用状态,当屏幕关闭时执行其他操作并且每次执行这些语句。我已经找到了这个方法,但是这只运行一次awake_state,再也没有进入sleep_state检查或再次返回awake_state。我通过添加“echo state>> log_file_path;”来调试在这两个陈述中。
#!/sbin/busybox sh
AWAKE_STATE()
{
echo 50 > /proc/sys/vm/swappiness;
}
SLEEP_STATE()
{
echo 80 > /proc/sys/vm/swappiness;
}
background_process=1;
if [ "$background_process" -eq "1" ]; then
(while true; do
while [ "$(cat /sys/module/lm3697/parameters/sleep_state)" -ne "0" ]; do
# when screen goes on it will pass.
sleep "3";
done;
AWAKE_STATE;
while [ "$(cat /sys/module/lm3697/parameters/sleep_state)" -ne "1" ]; do
# when screen goes off it will pass.
sleep "3";
done;
SLEEP_STATE;
done &);
fi;
/sys/module/lm3697/parameters/sleep_state
表示屏幕状态和用另一个进程创建的background_process=1
来打开此脚本,直到我更改它才会更改(它始终打开)。 sleep_state=1
表示屏幕已关闭。