なぜ私のラップトップが2回/3回停止するのですか?

なぜ私のラップトップが2回/3回停止するのですか?

WMはawesome蓋を閉めると自動的に一時停止しないため、一部の内容に従いました。指示する動作させる。次/etc/acpi/local/lid.sh.postの内容を含むファイルを追加しました。

#!/bin/sh
pm-suspend

これで一時停止が機能しますが、カバーを開いて電源ボタンを押すと、デスクトップがしばらく表示され、再び一時停止します。電源ボタンをもう一度押すと正常に再開されます。それ以降は、しばらく停止するたびに電源ボタンを押して待つ必要があります。サム数回経過すると正常に回復します。 4回連続で停止しようとしましたが、もう悪化しないようです。

編集する:私は簡単なものを使う画面ロックサービス元のスクリプトの代わりに:

[Unit]
Description=Lock X session
Before=sleep.target

[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/xautolock -locknow

[Install]
WantedBy=sleep.target

しかし、完璧な解決策ではありません。

解決しました!他の人が欲しいなら作ってみました。スクリプト1つのコマンドでこれを行います。

#!/usr/bin/env bash
#
# NAME
#        suspend-on-close.sh - Enable suspend when closing laptop lid
#
# SYNOPSIS
#        suspend-on-close.sh [options]
#
# DESCRIPTION
#        Adds a new "post" event to the ACPI lid close handler
#
# BUGS
#        https://github.com/l0b0/tilde/issues
#
# COPYRIGHT
#        Copyright © 2013-2014 Victor Engmark. License GPLv3+: GNU GPL
#        version 3 or later <http://gnu.org/licenses/gpl.html>.
#        This is free software: you are free to change and redistribute it.
#        There is NO WARRANTY, to the extent permitted by law.
#
################################################################################

set -o errexit -o noclobber -o nounset -o pipefail

directory="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PATH='/usr/bin:/bin'

target_dir="/etc/acpi/local"
target_file="${target_dir}/lid.sh.post"

if [[ ! -d "$target_dir" ]]
then
    mkdir "$target_dir"
fi

> "$target_file" cat <<EOF
#!/bin/sh
grep -q closed /proc/acpi/button/lid/*/state && pm-suspend
EOF

chmod u+x "$target_file"

答え1

ふたを閉じて開くたびに、ふたのコールバックが呼び出されると確信しています。

sleep.sh書類ここ状態:

# if launched through a lid event and lid is open, do nothing
echo "$1" | grep "button/lid" && grep -q open /proc/acpi/button/lid/LID/state && exit 0

「ふたを開く」シナリオは、スクリプトが確認しないシナリオの1つです。

一部のパラメータをログファイルに反映して、すばやくテストできます。

答え2

私はDell Inspiron 11zでUbuntu 14.04でAwesome WMを実行しており、同様のスリープ/停止の問題が発生しました。

確認してs2ram -f動作すると、読み値をs2disk更新し、閉じたときに一時停止し、開いたときに再び一時停止しました。/usr/lib/pm-utils/sleep.d/00powersave/usr/sbin/s2ram -f

ご案内に応じて以下を追加しました。00powersave

echo "$1" >> /home/user/lid.log
cat /proc/acpi/button/lid/LID0/state >> /home/user/lid.log

ノートブックを閉じて開くと、次のように出力されます。

suspend
state:      closed
resume
state:      open

これらの状態に基づいて、00powersave次のようにファイルを作成しました。

echo "$1" | grep "resume" && grep -q open /proc/acpi/button/lid/LID0/state && exit 0
/usr/sbin/s2ram -f

スクリプトが「resume」として呼び出され、カバーが開いていることを確認し、両方の条件が満たされた場合は何もしません。

とても感謝しています!失礼だった場合は申し訳ありませんが、解決するのは痛く、次の人がより簡単に時間を費やすためにこの記事を投稿したかったのです。

関連情報