android系统使用crontab定时任务
一、先决条件必须root,root才能在system目录配置文件安装busybox包,busybox是一个linux命令的工具包二、激活init.dinit.d在linux系统里面是负责管理系统启动以后自动执行的一些脚本的,必须把启动cron服务的脚本写在里面,这样每次系统启动的时候,cron服务才会起来,功能才能使用版本一:使用apk包安装版本二:执行term-init脚本...
·
一、先决条件
- 必须root,root才能在system目录配置文件
- 安装busybox包,busybox是一个linux命令的工具包
二、激活init.d
-
init.d在linux系统里面是负责管理系统启动以后自动执行的一些脚本的,必须把启动cron服务的脚本写在里面,这样每次系统启动的时候,cron服务才会起来,功能才能使用
-
版本一:使用apk包安装
-
版本二:执行term-init脚本
mount -o rw,remount /system
adb push ~/Desktop/term-init.sh /mnt/sdcard
adb shell
su
sh /mnt/sdcard/term-init.sh
三、配置系统crontab
sdb push ~/Desktop/SP8-CRON /mnt/sdcard
adb shell
su
cd /mnt/sdcard/SP8-CRON
sh Install.sh
四、检查crontab执行
- 检查进程
ps -A | grep crond
crontab -l
# 可是每次执行crontab -l,系统都会报一个错误unknown uid 0. 通过id命令检查,uid为0就是root用户,为什么不能执行?
pgrep crond
- 如果查询不成功执行脚本
cd /system/etc/init.d/
sh S99CRON-SP8
- 查看crontab定时任务文件/system/etc/cron.d/root,从配置文件可以看到每五分钟输出date到/data/cron-sp8.log文件,查看这个文件,检查是否输出,如有输出说明有定时执行
*/5 * * * * date > /data/cron-sp8.log
0 */1 * * * /system/xbin/flush
0 1 * * 1 /system/xbin/sclean
五、修改定时任务
- kill掉进程
whyred:/system/etc/init.d # pgrep crond
pgrep crond
14442
whyred:/system/etc/init.d # kill -9 14442
kill -9 14442
- 修改配置文件,增加每十分钟启动系统闹钟
mount -o rw,remount /system
echo '
*/5 * * * * date > /data/cron-sp8.log
0 */1 * * * /system/xbin/flush
0 1 * * 1 /system/xbin/sclean
*/10 * * * * am start -n com.android.alarmclock/com.android.alarmclock.AlarmClock' > /system/etc/cron.d/root
- 启动服务
sh /system/etc/init.d/S99CRON-SP8
六、参考
更多推荐
已为社区贡献1条内容
所有评论(0)