IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    macOS 定时自动亮屏

    血衫非弧の一存发表于 2024-11-03 00:00:00
    love 0

    通过 macOS 自带的 caffeinate 工具和定时任务 crontab,可以轻松实现定时自动亮屏的功能。以下是模拟用户活动并保持屏幕唤醒 10 分钟的具体实现。

    wake_screen.sh

    #!/bin/bash
    
    # 获取当前时间(小时和分钟)和日志时间(带日期)
    current_time=$(date +'%H:%M')
    log_time=$(date +'%Y%m%d_%H%M')
    sleep_time=1  # 设置每次睡眠时间
    # 计算循环次数,使得总执行时间接近 60 秒
    loop_count=$(( 60 / sleep_time ))
    
    # 检查是否为每天 8 点,并清空日志
    if [[ "$current_time" == "08:00" ]]; then
        echo "[$log_time] 日志已清空" > "$log_file"
    fi
    
    # 判断是否在 13:00 到 13:02 之间
    if ([[ "$current_time" > "18:20" && "$current_time" < "18:40" ]] || 
        [[ "$current_time" > "13:00" && "$current_time" < "13:02" ]]); then
        echo "[$log_time] 执行 caffeinate 命令" >> ~/Workspace/log/cron/caffeinate.log
    
        # 使用 for 循环动态执行 caffeinate 命令
        for i in $(seq 1 $loop_count); do
            caffeinate -u -d -t $sleep_time
            log_time_2=$(date +'%H%M%S')
            echo "[$log_time] $i $log_time_2 end" >> ~/Workspace/log/cron/caffeinate.log
        done
    else
        echo "[$log_time] 当前时间不执行命令" >> ~/Workspace/log/cron/caffeinate.log
    fi
    
    

    赋予脚本执行权限 chmod +x ~/wake_screen.sh

    macOS 下 cron 的说明

    ​ 1. 正常情况下,无需手动重启 cron 服务

    macOS 默认启用 cron,修改 crontab 文件后会自动加载新任务。

    ​ 2. 检查任务生效

    使用命令查看当前任务:crontab -l,确保定时任务已正确保存。

    ​ 3. 手动启动 cron(异常情况下)

    如果任务未运行,可以手动启动 cron:

    sudo launchctl load -w /System/Library/LaunchDaemons/com.vix.cron.plist
    


沪ICP备19023445号-2号
友情链接