蓋を閉じてもスリープコマンドを中断しない

蓋を閉じてもスリープコマンドを中断しない

私は次のようなリマインダーをすぐに設定する習慣があります:

sleep $duration; notify-send $reminder_message

しかし、最近は移動が多く、頻繁にデスクを変える必要があり、$reminder_message予定より遅く到着し始めたことに気付きました。原因は、蓋を閉じると、私のコマンドとともにすべてが一時停止してしまうことでしたsleep

私が調べた方法は次のとおりです:

date; echo $duration; date -d "+$duration sec"; sleep "$duration"s; date

上記のコマンドの間に蓋を閉じると、datedate -d "+$duration sec"は一致しません。ただし、蓋が閉じられていない場合は一致します。

そこで、簡単な修正として、次のようにして lid-close によるサスペンドを無効にしました。

HandleLidSwitch=ignore

(続くこのask-ubuntuの回答

これで、スリープコマンドは期待通りに動作するようになりました。しかし、サスペンドを完全に無効にするのは、攻撃的すぎる修正してやり過ぎ

sleepもっと簡単な解決策はありますか?蓋を閉じたときにコマンドが中断されないようにしたいだけです。

答え1

悪気はありませんが、ここにはXY問題があるかもしれません。あなたの本物問題は、sleep間違っている可能性があるということです。sleep指定された時間が経過するまでチェックし、コンピューターがスリープ状態になるとその時間が停止します。

代わりに、at特定のジョブが特定の時間に実行されるようにスケジュールするコマンドを使用することを検討してください。

at次のように動作します:

echo "command_to_be_run" | at +30 minutes

30 分後にジョブをスケジュールします。

atは とよく似ていますcronが、ジョブは 1 回しか実行されません。デフォルトではインストールされませんが、 とともにインストールできますsudo apt install at

関連情報