脚本能禁用系统休眠功能吗?

wen 实用脚本 1

本文目录导读:

脚本能禁用系统休眠功能吗?

  1. Windows (使用 PowerShell 或 CMD)
  2. macOS (使用终端)
  3. Linux (使用 systemd 或 xset)
  4. 重要注意事项

是的,脚本可以禁用系统休眠功能,具体实现方式取决于操作系统(Windows、macOS 或 Linux)。

以下是几种常见系统的脚本示例:

Windows (使用 PowerShell 或 CMD)

方法 A:使用 PowerShell (推荐,无需管理员权限仅在当前会话有效,或需管理员权限永久有效)

  • 临时禁用 (仅当前会话有效,重启后恢复)

    # 禁用休眠 (同时会禁用混合睡眠)
    powercfg /hibernate off

    注意:此命令会删除 C:\hiberfil.sys 文件,释放磁盘空间。

  • 永久禁用 (通过修改电源计划)

    # 需要以管理员身份运行 PowerShell
    # 设置“睡眠”中的“睡眠超时”为 0 (从不)
    powercfg /change standby-timeout-ac 0
    powercfg /change standby-timeout-dc 0
    # 设置“休眠”超时为 0 (从不) - 如果系统有此设置
    powercfg /change hibernate-timeout-ac 0
    powercfg /change hibernate-timeout-dc 0
    # 禁用所有睡眠状态 (更彻底)
    powercfg /hibernate off

方法 B:使用批处理文件 (.bat)

创建一个 .bat 文件,内容如下:

@echo off
echo 正在禁用系统休眠功能...
REM 禁用休眠文件
powercfg /hibernate off
REM 将睡眠超时设置为从不 (需要管理员权限)
powercfg /change standby-timeout-ac 0
powercfg /change standby-timeout-dc 0
echo 操作完成。
pause

macOS (使用终端)

方法:使用 pmset 命令

# 禁用休眠 (将 hibernatemode 设置为 0)
sudo pmset -a hibernatemode 0
# 禁用睡眠 (将 sleep 设置为 0)
sudo pmset -a sleep 0
# 禁用自动休眠 (autopoweroff)
sudo pmset -a autopoweroff 0
# 禁用电源休眠 (powernap) - 如果你不希望它被唤醒
sudo pmset -a powernap 0

注意:-a 参数表示对所有电源状态生效(电池、电源适配器等),你也可以用 -b (电池) 或 -c (电源适配器) 分别设置,需要管理员权限。

Linux (使用 systemd 或 xset)

方法 A:使用 systemd (适用于大多数发行版)

# 禁用休眠 (需要 root 权限)
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
# 重新启用 (如果需要)
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

方法 B:使用 xset (仅适用于当前 GUI 会话,非持久)

# 禁用 DPMS (显示器电源管理) 和屏幕保护
xset s off         # 关闭屏幕保护
xset -dpms         # 禁用 DPMS (显示器休眠/关闭)

方法 C:使用 gsettings (GNOME 桌面)

# 禁用自动睡眠
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'

重要注意事项

  1. 权限问题
    • Windows 的 powercfg /hibernate off 通常需要以管理员身份运行 PowerShell 或 CMD。
    • macOS 和 Linux 的命令通常需要 sudo (超级用户权限)。
  2. 持久性
    • 某些设置(如 xset)仅对当前会话有效,重启后会失效。
    • Windows 的电源计划修改和 Linux 的 systemctl mask 是持久性的。
  3. 恢复:你可以创建对应的启用脚本来恢复设置,Windows 上用 powercfg /hibernate on,Linux 上用 sudo systemctl unmask sleep.target
  4. 混合睡眠:禁用休眠 (powercfg /hibernate off) 也会禁用“混合睡眠”功能,但不会影响“睡眠”(待机)模式。
系统 推荐命令 说明
Windows powercfg /hibernate off 完全禁用休眠文件;配合 powercfg /change 可禁止睡眠。
macOS sudo pmset -a hibernatemode 0 将休眠模式设为 0;配合 sleep 0 可禁止睡眠。
Linux sudo systemctl mask sleep.target 禁用 systemd 的睡眠/休眠目标。

如果你提供具体的操作系统和使用场景(服务器、个人电脑、特定软件需要),我可以给出更精确的脚本方案。

抱歉,评论功能暂时关闭!