Gostaria de suspender meu laptop usando at
:
echo "systemctl suspend" | at now + 5 minutes
A suspensão não acontece, em vez disso, eu encontro um email de at
in /var/spool/mail/me
:
Failed to set wall message, ignoring: Interactive authentication required.
Failed to suspend system via logind: Interactive authentication required.
Failed to start suspend.target: Interactive authentication required.
See system logs and 'systemctl status suspend.target' for details.
Tudo bem, logind
requer autenticação quando at
executa systemctl suspend
. Isso é interessante, pois quando executo systemctl suspend
diretamente, sem at
, nenhuma autenticação é necessária e a máquina entra em suspensão.
Eu verifiquei se os comandos executados com at
são executados pelo mesmo usuário não raiz que os comandos executam diretamente usando echo "echo $(who) > who.txt" | at now
.
Suspeitando que a autenticação é necessária em at
porque ele executa os comandos via /bin/sh
(que é um alias para bash), executei systemctl suspend
após iniciar /bin/sh
: A suspensão ocorre imediatamente sem autenticação, indicando que o O shell aninhado não é o motivo pelo qual a suspensão falha quando feita com at
.
Eu recebo o mesmo comportamento e emails muito semelhantes ao fazer echo "reboot" | at now
e echo "shutdown now" | at now
.
Minha pergunta é: Como logind
descobre que é at
que tenta suspender, reinicializar ou desligar a máquina e como posso informar a logind
que deve permitir que at
execute esses comandos? sem autenticação?
Estou no Arch Linux 4.18.1 com at
versão 3.1.19.