参考
#(12/18)linuxを入れ直して色々いじってるうちにまただめになったので考察
考察その1
ログアウトするときにセッションを保存するが、その際に何らかの理由でセッションを保存できないプログラムがある。サスペンド失敗するときは決まってsleepサービスがActive状態にある。つまりセッションの保存がうまく行かなかったときにsleepサービスがActiveになる。
考察その2
purgeをしたときに、セッション管理に重要な何かも一緒に削除してしまった。怪しいなと思うのが、自動開始アプリケーション(デーモン)だ。NVIDIAのグラフィック系かネットワーク系のデーモンのような気がする。
考察その3
すこし様子をみて回復の見込みがなさそうなときは、linuxカーネルをいじることにする。
いろいろ試しましたが、linuxカーネルを一つずつ下げて確認していく方法がベストかと思います。
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt update
sudo apt install ukuu
エラーログをみる
/var/log/syslog
の該当の時刻をみれば一発でわかるとおみます。
以下、シャットダウンエラーです。
Dec 16 17:09:34 PC kernel: [22044.679009] traps: xfsm-shutdown-h[10988] general protection fault ip:7f199cbaf98d sp:7ffdd3909ed0 error:0 in libc-2.27.so[7f199cb18000+1e7000]
sudo systemctl suspendもできないとき
つぎのようにしかられます。
Failed to suspend system via logind: There's already a shutdown or sleep operation in progress
すでにシャットダウンかスリープが実行してるという意味。これはどういうことか。
そこでsystemctl
コマンドでsleepユニットの状態を確認する。
systemctl list-unit-files | grep sleep
> sleep.target
systemctl status sleep.target
>Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
Active: active since Mon 2019-12-16 19:47:47 JST; 20min ago
Docs: man:systemd.special(7)
statusがアクティブならsleepをオフにする。
sudo systemctl disable sleep
これでsleepできると思う。
sudo systemctl suspend
答え
xfce4-power-manager
とlight-locker
が原因でした。light-lockerの不具合でディスプレイがオフにならずsuspend処理が中断するようです。ほかにやることがあるので、とりえあえずこれで良しとした。
sudo apt purge xfce4-power-manger light-locker
それでもだめならこうだ
Linuxカーネルが強制終了します。サスペンドができないということはシャットダウンも恐らくできないでしょうから、このコマンドで必ず再起動することができます。コマンドを行う前に未保存のものがないか必ず確認してから行ってください。
su
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
また駄目になった(12/17)
archlinuxのbbsでlinuxカーネルを更新したらsuspendできなくなったという人がいるようなので
、これはカーネルの問題なのかもしれない。
https://bbs.archlinux.org/viewtopic.php?id=250863