我找不到我的问题的答案:是否可以运行crontab以使用busybox(或其他方式)重新启动Android

试图运行crontab,它抱怨未知的uid 0。

试图运行重新启动,但它什么也不做。

还是我正在要求不可能的事情?

最佳答案

要求

  • 根访问权限:适用于 super 用户命令,例如重新启动或init.d配置。 Crond仍然可以在普通用户特权下运行。
  • Busybox:用于“crond”服务
  • (可选)init.d支持:在引导时启动“crond”服务。或通过Magisk post-fs-data.d脚本开始。

  • 创建cronjob

    在目录/ data / crontab /中创建cronjob文件(即使在sdcard中也可以是任何可访问的目录),文件名为'root'。
    将您的cronjob写入文件“root”。
    echo '
    53 * * * * reboot' >> /data/crontab/root
    

    在不重新启动的情况下进行测试

    现在,打开设备中的任何终端仿真器并运行以下命令。
    su -
    crond -b -c /data/crontab
    

    现在,crond服务将启动,以检查pgrep -l crondps | grep crond类型

    从启动启动crond

    在/system/etc/init.d上创建具有可执行权限的文件:
    echo '
    crond -b -c /data/crontab' > /system/etc/init.d/crond
    
    chmod +x /system/etc/init.d/crond
    

    示例cronjobs

    53 * * * *重新启动

    将在每小时的第53分钟重启设备。

    注意:
    1.如果您修改crontab,请记住在杀死现有守护程序后重新启动crond守护程序。
  • 如果crond不遵守您的时区,则可能需要更新设备中的tzdata。
  • 最好使用* / 1 * * * *进行测试,以查看其是否正常运行。
  • 07-28 06:08