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.