mac系统需用caffeinate命令绑定下载进程,如pgrep -f "transmission" | xargs -i {} caffeinate -w {},确保锁屏时下载持续运行;windows用nosleep监控进程名(如thunder.exe)实现动态防休眠;linux通过systemd用户服务配合systemd-inhibit守护下载进程。

你想让迅雷、Transmission、Edge下载管理器或自研程序在锁屏、合盖、无操作时继续跑完下载任务,而不是被Windows/Mac/Linux系统自动挂起或终止进程。
Windows:用NoSleep锁定特定软件活跃状态
该方法不全局禁用休眠,只在目标程序运行时动态维持系统唤醒,兼顾节能与可靠性。
第一步:下载NoSleep最新版(推荐v4.2+),解压后双击NoSleep.exe启动。
第二步:右键系统托盘中的咖啡杯图标 → 选择「Settings」→ 在「Process Monitoring」选项卡中勾选「Enable process monitoring」。
第三步:点击「Add Process」→ 输入你要保护的软件进程名(如Thunder.exe对应迅雷,msedge.exe对应Edge,transmission-qt.exe对应Transmission)→ 点击「OK」。
第四步:启动你的下载软件,NoSleep会自动检测并绑定其PID;此后只要该进程存在,系统就不会进入睡眠或锁屏。注意:【必须先启动NoSleep,再启动下载软件,顺序颠倒将无法捕获进程】。
Mac:用caffeinate命令精准绑定下载进程
这是macOS原生方案,无需安装第三方工具,对单个App生效,不干扰其他应用休眠逻辑。
方法一:终端实时绑定(适合临时任务)
打开「终端」,输入以下命令并回车:
pgrep -f "Transmission" | xargs -I {} caffeinate -w {}
这行命令会查找Transmission进程ID,并用caffeinate持续守护它。若你用的是迅雷Mac版,把"Transmission"换成"Thunder"即可。
方法二:创建一键守护脚本(适合长期使用)
在桌面新建文本文件,命名为keep_transmission_awake.sh,粘贴以下内容:
#!/bin/bash
open -a "Transmission"
sleep 3
pgrep -f "Transmission" | xargs -I {} caffeinate -w {} &
保存后,在终端执行:chmod +x ~/Desktop/keep_transmission_awake.sh,双击运行该脚本即可。
注意:【caffeinate -w 必须在目标App完全启动后再执行,否则绑定失败;sleep 3 是为留出启动缓冲时间】。
Linux(Ubuntu):通过systemd用户服务常驻守护
适用于需要开机自启、长期后台运行的场景,比如用aria2c、wget或自建下载服务。
① 创建服务定义文件:
执行命令:nano ~/.config/systemd/user/download-keepalive.service
② 粘贴以下内容(以aria2c为例,替换ExecStart中命令为你实际使用的下载程序):
[Unit]
Description=Prevent sleep while aria2c is running
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c 'while pgrep -f "aria2c" > /dev/null; do systemctl inhibit --what=handle-lid-switch:suspend --who=download --why="downloading" --mode=block sleep 30; done'
RemainAfterExit=yes
[Install]
WantedBy=default.target
③ 启用并启动服务:
systemctl --user daemon-reload
systemctl --user enable download-keepalive.service
systemctl --user start download-keepalive.service
这一步会让系统持续检测aria2c进程,只要它活着,就用systemd-inhibit阻止合盖/空闲触发的挂起动作。











