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

笔记本开盖/重新登录时自动运行指定bash脚本的方案咨询

笔记本开盖/重新登录时自动运行指定bash脚本的方案咨询

我懂你的需求——不想让crontab每分钟轮询检查时间,又想补上笔记本合盖锁屏期间错过的定时任务,同时在开盖唤醒或者解锁登录时自动触发脚本运行。下面给你几个实用的、适配不同场景的方案:

方案一:利用桌面环境的登录/解锁触发机制(以GNOME为例)

大部分主流桌面环境都支持在登录或解锁时自动执行程序,刚好能覆盖你按Win+L锁屏后解锁的场景:

  • 打开用户配置下的自启动目录:~/.config/autostart/
  • 创建一个名为run-myscript-on-unlock.desktop的文件,写入以下内容(记得替换脚本路径):
    [Desktop Entry]
    Type=Application
    Name=Run My Script on Unlock
    Exec=/full/path/to/your/script.sh
    X-GNOME-Autostart-enabled=true
    X-GNOME-Autostart-Delay=0
    OnlyShowIn=GNOME;
    
  • 保存后,每次你解锁登录(包括锁屏后解锁、开机登录)都会自动执行这个脚本。如果是合盖休眠后开盖,系统唤醒后会进入解锁界面,解锁时也会触发。

方案二:用systemd处理系统唤醒(开盖触发)

如果你的笔记本合盖会触发系统休眠/挂起,那可以用systemd创建一个唤醒触发的服务,直接在开盖唤醒时运行脚本,不需要等解锁:

  1. 创建一个systemd服务文件,比如/etc/systemd/system/run-script-on-wake.service,内容如下:
    [Unit]
    Description=Run my custom script when system wakes from sleep
    After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
    
    [Service]
    Type=oneshot
    ExecStart=/full/path/to/your/script.sh
    User=your-username  # 替换成你的实际用户名,避免用root运行非必要脚本
    
    [Install]
    WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
    
  2. 执行以下命令启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable run-script-on-wake.service
    

这个方案会在系统从任何休眠状态唤醒时自动运行脚本,完美对应开盖的场景。

方案三:结合两种场景,覆盖所有情况

如果想同时处理解锁登录和开盖唤醒两种场景,直接把上面两个方案结合起来就行——用systemd服务处理唤醒,用桌面自启动项处理解锁,这样不管哪种情况都不会错过脚本运行。

额外小技巧:避免重复执行

如果两个方案同时用,可能会出现短时间内脚本重复运行的情况,你可以在bash脚本里加个简单的判断逻辑,记录上次运行时间,只有间隔超过一定时长(比如1小时)才执行核心内容:

#!/bin/bash
LAST_RUN_LOG="$HOME/.last_script_exec_time"
CURRENT_TIMESTAMP=$(date +%s)

# 检查上次运行时间,1小时内已运行则退出
if [ -f "$LAST_RUN_LOG" ]; then
    LAST_RUN=$(cat "$LAST_RUN_LOG")
    if [ $((CURRENT_TIMESTAMP - LAST_RUN)) -lt 3600 ]; then
        exit 0
    fi
fi

# 这里写你的脚本核心逻辑
echo "Script executed at $(date)" >> "$HOME/script_execution.log"

# 更新上次运行时间记录
echo "$CURRENT_TIMESTAMP" > "$LAST_RUN_LOG"

备注:内容来源于stack exchange,提问作者Sebastian Illi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:48:01