arcolinux挂起休眠混合睡眠区别

Posted 0blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcolinux挂起休眠混合睡眠区别相关的知识,希望对你有一定的参考价值。

在ArcoLinux中,挂起、休眠和混合睡眠是三种不同的电源管理模式,它们的区别如下:

  1. 挂起(Suspend):挂起是一种省电模式,它会将计算机的状态保存到内存中,然后关闭所有设备和电源。当您再次启动计算机时,它会从内存中恢复状态,您可以继续使用计算机。挂起模式比重新启动计算机更快,但是它需要一定的电量来保持内存中的状态。

  2. 休眠(Hibernate):休眠是一种更加省电的模式,它会将计算机的状态保存到硬盘中,然后关闭所有设备和电源。当您再次启动计算机时,它会从硬盘中恢复状态,您可以继续使用计算机。休眠模式比挂起模式更加省电,但是它需要一定的时间来保存和恢复状态。

  3. 混合睡眠(Hybrid Sleep):混合睡眠是一种结合了挂起和休眠的模式。它会将计算机的状态保存到内存和硬盘中,然后关闭所有设备和电源。如果计算机的电源被切断,它会从硬盘中恢复状态。如果计算机的电源没有被切断,它会从内存中恢复状态。混合睡眠模式可以在电源被切断时保护您的数据,同时也可以在电源没有被切断时快速恢复状态。

总的来说,挂起模式比较快,但需要一定的电量来保持内存中的状态;休眠模式比较省电,但需要一定的时间来保存和恢复状态;混合睡眠模式结合了挂起和休眠的优点,可以在电源被切断时保护数据,同时也可以在电源没有被切断时快速恢复状态。

在ArcoLinux中,您可以通过以下方式进入这些电源管理模式:

  1. 挂起:在桌面环境中,单击“电源”图标,然后选择“挂起”选项。您也可以使用以下命令在终端中进入挂起模式:

    systemctl suspend
    
  2. 休眠:在桌面环境中,单击“电源”图标,然后选择“休眠”选项。您也可以使用以下命令在终端中进入休眠模式:

    systemctl hibernate
    
  3. 混合睡眠:在桌面环境中,单击“电源”图标,然后选择“混合睡眠”选项。您也可以使用以下命令在终端中进入混合睡眠模式:

    systemctl hybrid-sleep
    

在选择电源管理模式时,您需要考虑到您的电池电量和计算机的性能。如果您需要快速恢复状态,可以选择挂起模式;如果您需要更长的电池续航时间,可以选择休眠模式;如果您需要保护数据并快速恢复状态,可以选择混合睡眠模式。

睡眠/暂停/休眠 Windows PC

【中文标题】睡眠/暂停/休眠 Windows PC【英文标题】:Sleep / Suspend / Hibernate Windows PC 【发布时间】:2011-11-22 23:13:57 【问题描述】:

我想编写一个简短的 Python 脚本,让我的计算机进入睡眠状态。我已经搜索了 API,但挂起的唯一结果与延迟执行有关。诀窍是什么功能?

【问题讨论】:

PC 是否暗示这是在 Windows 上? 【参考方案1】:

获取pywin32,如果我没记错的话,它还包含win32security。然后再次尝试提到的script。

【讨论】:

【参考方案2】:

如果您使用的是 Windows,请参阅 Tim Golden 的 gmane.comp.python.windows 新闻组 post。

【讨论】:

我关注了您的链接,但该脚本对我不起作用。如何获得 win32api 和 win32security,这两个导入都不起作用。【参考方案3】:
subprocess.call(['osascript', '-e','tell app "System Events" to sleep'])

【讨论】:

虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。【参考方案4】:

如果您有 pywin32 和 ctypes,则无需借助 shell 执行:

import ctypes
import win32api
import win32security

def suspend(hibernate=False):
    """Puts Windows to Suspend/Sleep/Standby or Hibernate.

    Parameters
    ----------
    hibernate: bool, default False
        If False (default), system will enter Suspend/Sleep/Standby state.
        If True, system will Hibernate, but only if Hibernate is enabled in the
        system settings. If it's not, system will Sleep.

    Example:
    --------
    >>> suspend()
    """
    # Enable the SeShutdown privilege (which must be present in your
    # token in the first place)
    priv_flags = (win32security.TOKEN_ADJUST_PRIVILEGES |
                  win32security.TOKEN_QUERY)
    hToken = win32security.OpenProcessToken(
        win32api.GetCurrentProcess(),
        priv_flags
    )
    priv_id = win32security.LookupPrivilegeValue(
       None,
       win32security.SE_SHUTDOWN_NAME
    )
    old_privs = win32security.AdjustTokenPrivileges(
        hToken,
        0,
        [(priv_id, win32security.SE_PRIVILEGE_ENABLED)]
    )

    if (win32api.GetPwrCapabilities()['HiberFilePresent'] == False and
        hibernate == True):
            import warnings
            warnings.warn("Hibernate isn't available. Suspending.")
    try:
        ctypes.windll.powrprof.SetSuspendState(not hibernate, True, False)
    except:
        # True=> Standby; False=> Hibernate
        # https://msdn.microsoft.com/pt-br/library/windows/desktop/aa373206(v=vs.85).aspx
        # says the second parameter has no effect.
#        ctypes.windll.kernel32.SetSystemPowerState(not hibernate, True)
        win32api.SetSystemPowerState(not hibernate, True)

    # Restore previous privileges
    win32security.AdjustTokenPrivileges(
        hToken,
        0,
        old_privs
    )

如果您只想要一个带有 pywin32 的单线并且已经拥有正确的权限(对于 简单,个人脚本):

import win32api
win32api.SetSystemPowerState(True, True)  # <- if you want to Suspend
win32api.SetSystemPowerState(False, True)  # <- if you want to Hibernate

注意:如果您的系统禁用了休眠,它将暂停。在第一个函数中,我包含了一个检查以至少对此发出警告。

【讨论】:

【参考方案5】:

我不知道怎么睡觉。但我知道如何休眠(在 Windows 上)。也许这就足够了? shutdown.exe 是你的朋友!从命令提示符运行它。

要查看其选项 shutdown.exe /?

我相信休眠调用将是: shutdown.exe /h

所以,把它们放在 python 中:

import os
os.system("shutdown.exe /h")

但是正如其他人提到的,使用 os.system 是不好的。改用popen。但是,如果你像我一样懒惰,那就是一个小脚本,嗯! os.system 是给我的。

【讨论】:

【参考方案6】:
import os
os.system(r'rundll32.exe powrprof.dll,SetSuspendState Hibernate')

【讨论】:

以上是关于arcolinux挂起休眠混合睡眠区别的主要内容,如果未能解决你的问题,请参考以下文章

求助,Windows 2008如何配置睡眠(Sleep)、休眠(hibernate)、混合休眠(Hybird Sleep)、标准睡眠(Standby)

电脑的休眠和睡眠有啥区别

电脑的待机,休眠,和睡眠有啥区别,哪个更省电

电脑的待机,休眠,和睡眠有啥区别,哪个更省电

ubuntu 进程睡眠怎么唤醒

睡眠/暂停/休眠 Windows PC