linux systemd interceptar o desligamento se o serviço estiver ativo

3

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.

    
por agnotek 03.10.2014 / 11:21

1 resposta

0

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.

    
por 03.10.2014 / 23:58