從睡眠中醒來後不久,SIGSEGV 地址邊界錯誤
從 a 恢復後
hybrid-sleep
,我可以登錄 (swaylock
) 並且最初看起來沒問題 -pwd
,journalctl -xe
在我讓它進入睡眠狀態時仍然打開的 shell 中按預期執行。過了一會兒,幾十秒,當我退出時
journalctl
(我只是想確認它實際上已經睡著了)CPU負載增加,我聽到風扇旋轉,以及我嘗試在同一個shell中執行的任何東西(pwd
再次,比如說)導致 SIGSEGV - 地址邊界錯誤。因此,我什至不能發出關機命令,所以我必須用電源按鈕強制關機。重新啟動
journalctl --boot=-1
後,它進入睡眠狀態後沒有任何條目,就像它從未醒來一樣。我假設當我看到它們時它們只儲存在 RAM 中,當我關閉時,它無法將它們寫入具有相同段錯誤的磁碟。行為非常不穩定 - 在起草上述內容後,我再次測試並能夠
swaylock
通過輸入單個密鑰而不是我的完整密碼來“登錄”(繞過),但我嘗試在打開(恢復)shell 中執行的任何命令都崩潰了終端模擬器,和以前一樣,我無法再重新打開(我的鍵綁定執行的命令可能也出現了段錯誤)。任何想法可能是什麼原因?或者甚至在系統穩定時如何在不訪問日誌的情況下進行調試?
一些可能相關的資訊,如果有人可以建議可能相關/可疑的內容,我將進行更多編輯:
# /etc/systemd/system/swapfile.swap [Unit] Description=providing a swapfile [Swap] What=/swapfile Priority=20 [Install] WantedBy=multi-user.target
# /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
條目(或我用來創建它的腳本),但實際上我意識到我還沒有測試過斷電 - 這是從 RAM 恢復時發生的。我會仔細檢查磁碟的(未使用的)懸念是否不是罪魁禍首,從普通的systemctl suspend
.
我不確定確切的原因;但我的問題的根源最終是我沒有使用
resume
&resume_offset
核心參數啟動。我原以為只有在恢復啟動時才需要這些;不是休眠的啟動,但似乎並非如此。