macOS 定时自动亮屏

通过 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

腾讯云主机移除监控程序 在 Android Chrome 上把标签栏放到底部