AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[hibernate](unix)

Martin Hope
kelalaka
Asked: 2022-09-22 04:42:31 +0800 CST

我们可以只休眠用户的图形会话吗

  • 0

考虑一下我在我的 PC 上的不同时间使用两个用户。如果我从一个切换到另一个,它们都需要导致交换的 ram。

一种解决方案是注销一个用户,然后登录到另一个用户 (Gnome|KDE|xfce|...) 并希望一切都恢复。检查所有正确打开的内容似乎很耗时。

除了这些,是否可以休眠和恢复会话以便会话可以轻松继续?

hibernate
  • 1 个回答
  • 20 Views
Martin Hope
Lingfeng Fu
Asked: 2022-06-07 01:23:15 +0800 CST

如何休眠 Linux To Go 到磁盘并在不同的设备上恢复它?

  • 0

我的 Linux 安装在便携式 SSD 上,因此我可以轻松切换设备(家里的笔记本电脑,办公室的台式机),而无需考虑任何同步问题。这称为 Linux To Go。

已经很不错了,但还能更好吗?

要在工作流程中切换设备,我必须(优雅地)退出所有应用程序,完全关闭操作系统,然后分离并连接 SSD,启动操作系统,等待其通电,最后重新打开所有需要恢复的应用程序我的工作。

现在我想找到一种方法来实现“暂停和恢复”,而不是这样的“停止和重新启动”。我希望操作系统内存能够在不同的设备上持续存在。

似乎休眠是一个潜在的解决方案。也许我可以通过休眠操作系统将内存保存在交换分区中,然后分离并连接 SSD,启动操作系统,很快,内存就会恢复,这样我就可以继续我的工作流程了。

但经过一番谷歌搜索后,我找不到任何关于跨多个设备休眠的教程/博客。

如何休眠 Linux To Go 到磁盘并在不同的设备上恢复它?或者,这根本不可能?

hibernate portability
  • 1 个回答
  • 37 Views
Martin Hope
LostXOR
Asked: 2020-02-18 07:37:12 +0800 CST

在电源管理中启用休眠?

  • 1

我有一台装有最新版本 Linux Mint 的笔记本电脑。我设置了一个交换分区并且运行pm-hibernate正常(启动时关闭并恢复)。但是,在电源管理设置中,“当电池电量严重不足时”休眠不是一个选项。 没有选项的图片 我查看了 Python 配置程序 ( /usr/share/cinnamon/cinnamon-settings/modules/cs_power.py),似乎有一段代码可以检查是否可以休眠:

def get_available_options(up_client):
    can_suspend = False
    can_hibernate = False
    can_hybrid_sleep = False

    # Try logind first
    try:
        connection = Gio.bus_get_sync(Gio.BusType.SYSTEM, None)
        proxy = Gio.DBusProxy.new_sync(
            connection,
            Gio.DBusProxyFlags.NONE,
            None,
            "org.freedesktop.login1",
            "/org/freedesktop/login1",
            "org.freedesktop.login1.Manager",
            None)

        can_suspend = proxy.CanSuspend() == "yes"
        can_hibernate = proxy.CanHibernate() == "yes"
        can_hybrid_sleep = proxy.CanHybridSleep() == "yes"
    except:
        pass

    # Next try ConsoleKit
    try:
        connection = Gio.bus_get_sync(Gio.BusType.SYSTEM, None)
        proxy = Gio.DBusProxy.new_sync(
            connection,
            Gio.DBusProxyFlags.NONE,
            None,
            "org.freedesktop.ConsoleKit",
            "/org/freedesktop/ConsoleKit/Manager",
            "org.freedesktop.ConsoleKit.Manager",
            None)

        can_suspend = can_suspend or (proxy.CanSuspend() == "yes")
        can_hibernate = can_hibernate or (proxy.CanHybridSleep() == "yes")
        can_hybrid_sleep = can_hybrid_sleep or (proxy.CanHybridSleep() == "yes")
    except:
        pass

    def remove(options, item):
        for option in options:
            if option[0] == item:
                options.remove(option)
                break

    lid_options = [
        ("suspend", _("Suspend")),
        ("shutdown", _("Shutdown immediately")),
        ("hibernate", _("Hibernate")),
        ("blank", _("Lock Screen")),
        ("nothing", _("Do nothing"))
    ]

    button_power_options = [
        ("blank", _("Lock Screen")),
        ("suspend", _("Suspend")),
        ("shutdown", _("Shutdown immediately")),
        ("hibernate", _("Hibernate")),
        ("interactive", _("Ask")),
        ("nothing", _("Do nothing"))
    ]

    critical_options = [
        ("shutdown", _("Shutdown immediately")),
        ("hibernate", _("Hibernate")),
        ("nothing", _("Do nothing"))
    ]

    if not can_suspend:
        for options in lid_options, button_power_options, critical_options:
            remove(options, "suspend")

    if not can_hibernate:
        for options in lid_options, button_power_options, critical_options:
            remove(options, "hibernate")

    return lid_options, button_power_options, critical_options, can_suspend, can_hybrid_sleep

如果我在此代码之后设置can_hibernate为True,则会出现该选项,但它不起作用。电量不足时如何设置休眠?

linux-mint hibernate
  • 2 个回答
  • 2058 Views
Martin Hope
PF4Public
Asked: 2019-01-31 13:53:15 +0800 CST

在 Dell Inspiron 上从 syspend/hibernate 恢复后黑屏

  • 0

我有一台带有 Gentoo 和 OpenRC 的戴尔 Inspiron 笔记本电脑。通过 gui 或键盘进入休眠和挂起没有问题。它也可以正常恢复。

我已配置xfce4-power-manager为通过盖子事件使其进入睡眠和休眠状态。最令人着迷的事情来了:它像正常一样醒来,但它的屏幕是黑色的。它完全是黑色的,醒来时根本没有打开它。

看起来它可以很好地暂停和从键盘睡眠按钮或通过 gui 唤醒,在这种情况下,它可以正确地打开屏幕,但是有盖子 - 由于某种原因它不会打开屏幕。

发生这种情况时,我可以通过 HDMI 连接显示器并从中手动启用笔记本电脑屏幕,就像在这个问题中一样。然而,在我的情况下,这只有在通过盖子触发 syspend/hibernate 时才会发生。

检查日志我发现通过盖子或键盘挂起该系统没有任何区别。从日志的角度来看,在这两种情况下,恢复都发生了相同的情况,系统也可以正常运行,除了带盖的情况下禁用了屏幕。

我尝试过制作ACPI Video内置的、Brightness内置的模块,尝试从内核中完全禁用EFI FB,但没有任何帮助。还尝试使用亮度键和“监视器选择”Fn键启用屏幕,也没有任何运气。尝试安装vbetool。这不仅无助于解决这个问题,而且完全打破了暂停和休眠。

鉴于观察结果,看起来某些东西(硬件或软件)应该打开屏幕,但对于盖子事件,它不能正常或及时地工作。

鉴于盖子事件的恢复,是什么负责启用屏幕?这个使能的时间是如何控制的?我是否缺少一些对盖子负责的内核模块?为了视频?用于开屏?

鉴于我以后可以通过 HDMI 手动启用屏幕,我可以将此操作添加到恢复脚本吗?我怎么做?“启用嵌入式屏幕/屏幕:0”命令会是什么样的?

suspend hibernate
  • 1 个回答
  • 1912 Views
Martin Hope
Basil K Y
Asked: 2018-12-31 20:48:05 +0800 CST

休眠在 Linux Mint 19 上不起作用

  • 7

我目前在 Linux Mint 19.1 上,它默认使用交换文件而不是交换分区。包括暂停在内的一切工作正常。但是休眠后恢复不起作用。我的配置如下/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=38c97b08-a1d5-44b5-9e96-afca13595fe2 resume_offset=27854848"

whereUUID是交换文件所属的根分区, resume_offset 是交换文件的偏移量。系统成功休眠。但在下一次启动时,它显示从 UUID 位置恢复,突然屏幕变黑(见此)。之后系统没有任何反应。我已经完成了以下线程,但似乎没有任何效果。

  • 休眠后 Ubuntu 18.04 无法恢复

  • 18.04 休眠

完整的系统详细信息可以在这里找到

我禁用了安全启动,目前在内核 4.18 上。有没有人使用交换文件成功实现休眠,或者知道为什么休眠不起作用?

linux-mint hibernate
  • 3 个回答
  • 6258 Views
Martin Hope
ysalmon
Asked: 2018-03-14 00:21:20 +0800 CST

为什么从休眠状态恢复需要 10 分钟,如何避免这种情况?

  • 3

我正在使用内核 4.4.0-116-generic(但早期版本也是如此)和 16 GB RAM 运行 XUbuntu 16.04。我使用的是“传统”硬盘驱动器(无 SSD),而我的 swappiness 为 0(RAM 很少满)。

我在休眠时遇到了以下情况:休眠正常需要不到 2 分钟,但从它恢复需要很多很多时间,直到应用程序响应(今天需要 10 多分钟才能到达 light-locker 提示)。

我不认为这是可用的(从休眠状态恢复比启动到新会话并重新打开程序需要更多时间)。

我怎样才能提高性能?我是唯一遇到这些问题的人吗?

诚然,现在的内存使用量是 8.8 GB,但让我烦恼的是休眠和恢复时间之间的差异。我从其他问题中了解到,这可能是因为在休眠期间,内核冻结了所有进程并将 RAM 整块转储到交换,而在恢复时它只是让进程在交换中请求它们的页面。

这是一个有效的解释吗?如果是这样,为什么要这样做,因为从硬盘驱动器读取大块比随机访问更快?我可以将休眠配置为不以这种方式进行吗?问题“在从休眠状态恢复时恢复内存中/交换页面状态”似乎相关,但我不知道足够多的页面来真正理解它们是否在做什么(“注意标记哪些页面在磁盘上和在RAM,然后在恢复时恢复这个确切的状态”)很有用,我也不知道该怎么做。

swap hibernate
  • 2 个回答
  • 1853 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve