Не на Ubuntu, але для мене працює наступне:
systemd-inhibit --what sleep --why "Lock screen" --mode delay xdg-screensaver lock & systemctl suspend
Замінити xdg-screensaver lock
за допомогою команди для блокування екрану на вашій системі , і systemctl suspend
з , systemctl hibernate
якщо ви хочете , щоб заблокувати екран перед сплячки.
Це спрацьовує, блокуючи екран паралельно призупиненню машини. Однак команда блокування екрана працює як інгібітор, який затримує сон. Таким чином, systemd буде чекати, поки екран не буде заблокований перед виконанням.
Якщо у вас є інгібітори, які блокують призупинення, додайте -i
прапор наприкінці.