You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使service.d中的Shell脚本每5分钟重复执行以保持屏幕常关?

实现service.d脚本每5分钟重复执行的方法

方法一:修改脚本加入循环逻辑

service.d下的脚本默认开机仅执行一次,要让它持续每隔5分钟运行一次,最简单的方式是在原脚本中加入while true循环结构,每次执行完指令后休眠5分钟。修改后的脚本如下:

# 先等待60秒确保系统初始化完成(可根据实际情况调整时长)
sleep 60

# 无限循环执行关闭屏幕操作
while true; do
    su -c CLASSPATH=/storage/emulated/0/DisplayToggle.dex app_process / DisplayToggle 0
    # 休眠5分钟(300秒)
    sleep 300
done

关键说明:

  • while true会让循环持续运行,直到脚本被主动终止
  • sleep 300对应5分钟(60秒×5),替换原脚本的单次休眠逻辑
  • 开头的sleep 60保留,避免系统刚启动时权限或服务未就绪导致执行失败

方法二:利用cron定时任务(需系统支持)

如果你的Android设备刷入了支持cron的ROM(如部分LineageOS版本),或通过Magisk模块安装了cron服务,可以直接创建定时任务:

  1. 终端获取root权限:su
  2. 编辑crontab规则:crontab -e
  3. 添加以下定时指令:
*/5 * * * * su -c CLASSPATH=/storage/emulated/0/DisplayToggle.dex app_process / DisplayToggle 0
  1. 保存退出,确保cron服务处于运行状态

关键说明:

  • */5 * * * *是cron的时间规则,代表每5分钟执行一次任务
  • 这种方式无需依赖service.d脚本,定时任务会独立运行

注意事项

  • 确保脚本拥有可执行权限:执行chmod +x 你的脚本完整路径(service.d常见路径为/system/etc/service.d/或/data/adb/service.d/,根据设备实际路径调整)
  • 若使用Magisk的service.d,脚本需放在/data/adb/service.d/目录下,文件名不能包含空格
  • 测试时可临时将sleep 300改为sleep 10,快速验证循环是否正常工作

内容的提问来源于stack exchange,提问作者xdesniy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 22:03:18