首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SIGSEGV解决睡眠后不久的边界错误

SIGSEGV解决睡眠后不久的边界错误
EN

Unix & Linux用户
提问于 2022-03-26 16:55:29
回答 1查看 218关注 0票数 0

在从hybrid-sleep中恢复后,我可以登录(swaylock),一开始它看起来不错- pwd,在shell中按预期运行的journalctl -xe从我进入睡眠状态时仍然是打开的。

但是,过了一会儿,当我退出journalctl (我只是想确认它实际上已经睡着了)时,我听到风扇旋转起来,任何我试图在同一个shell中运行的东西(再说一次,pwd)都会导致SIGSEGV -地址边界错误。

因此,我甚至不能发出关闭命令,所以我不得不用电源按钮强制关闭它。一旦重新启动,journalctl --boot=-1就没有从睡眠中获取的条目,就像它从未醒来一样。我认为当我看到它们时,它们只存储在RAM中,当我关闭时,它无法用相同的分段错误将它们写到磁盘上。

这种行为非常不稳定--在起草了上面的代码之后,我再次进行了测试,并能够通过输入一个键(而不是我的完整密码)来“登录”(绕过swaylock),但是我试图在打开的(恢复的)shell中运行的任何命令都会导致终端模拟器崩溃,就像以前一样,我无法再重新打开(我的键绑定运行的命令也可能是分段错误的)。

知道原因是什么吗?或者,当系统稳定时,我甚至可以在不访问日志的情况下调试它?

一些可能相关的信息,我会编辑更多,如果有人可以建议什么可能是相关的/怀疑:

代码语言:javascript
复制
# /etc/systemd/system/swapfile.swap
[Unit]
Description=providing a swapfile

[Swap]
What=/swapfile
Priority=20

[Install]
WantedBy=multi-user.target
代码语言:javascript
复制
# /etc/systemd/system/swapfile-creation.service
[Unit]
Description=creating a swap file at /swapfile
ConditionPathExists=!/swapfile
Before=swapfile.swap

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'dd if=/dev/zero of=/swapfile bs=1M count="$(expr "$(cat /sys/power/image_size)" / 1024 / 1024)" status=progress'
ExecStart=/usr/bin/chmod 600 /swapfile
ExecStart=/usr/bin/mkswap /swapfile

[Install]
RequiredBy=swapfile.swap

我本来打算包括systemd-boot条目(或者我用来创建它的脚本),但实际上我意识到我还没有从电源损耗中进行测试--这是在从内存恢复时发生的。我将再次检查磁盘的(未使用的)悬念是否是罪魁祸首,当从普通的systemctl suspend恢复时,它是否不起作用。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-05-15 21:14:06

我不确定确切原因;但问题的根源在于我没有使用resume & resume_offset内核参数启动。我认为这些只是在恢复启动时才需要的;不是休眠的引导,而是似乎不是这样的

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/696939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档