Para a suspensão / hibernação / etc. coisas apenas obter uma inibição de logind. Esse logind inibe o trabalho para a maioria dos desligamentos, mas você pode contorná-lo em algumas situações que eu acho.
Eu criei um pequeno programa de atualização / atualização para o meu Linux baseado em arco. Em vez de usar um cronjob, estou usando o systemd e criei os seguintes arquivos:
em /etc/systemd/system
: uupgrades.target & uupgrades.timer
[Unit]
Description=UU Upgrades Timer Target
StopWhenUnneeded=yes
[Unit]
Description=UU Upgrades Timer
[Timer]
OnBootSec=8min
OnUnitActiveSec=7h
Unit=uupgrades.target
[Install]
WantedBy=basic.target
em /etc/systemd/system/uupgrades.target.wants
eu tenho o arquivo uupgrades.service
[Unit]
Description=UU Update Program
[Service]
Nice=19
IOSchedulingClass=2
IOSchedulingPriority=7
ExecStart=/usr/bin/uupgrades
e em /etc/systemd/system/basic.target.wants
um link simbólico para uupgrades.timer
O que eu quero, é apenas que o desligamento, reinicialização, suspensão, hibernação, ... está atrasado até que o uupgrades não esteja mais ativo, quando estiver ativo.
Como posso conseguir isso? Uma GUI / DE ainda em execução não é necessária.
Para a suspensão / hibernação / etc. coisas apenas obter uma inibição de logind. Esse logind inibe o trabalho para a maioria dos desligamentos, mas você pode contorná-lo em algumas situações que eu acho.