Eu tenho este cronjob definido:
* * * * * /usr/bin/systemctl suspend
E não está funcionando. Mas eu posso executá-lo em um shell e funciona. Não entendo o que poderia não estar funcionando.
Edição
Redirecionando a saída de erro para /tmp/error
:
Failed to issue method call: Access denied
Failed to issue method call: Access denied
Minha pergunta é: Os cronjobs são executados como um usuário especial ( cron
por exemplo), o que explicaria que meu usuário pode executar o comando, mas não cron
ele próprio?
Explicação adicional:
Este é um exemplo mínimo para mostrar um problema que tenho em um script (que faz mais sentido do que o único comando fornecido aqui)
systemctl
faz parte desystemd
. Eu acho que reiniciar, desligar, suspender estão trabalhando com um usuário não rootsystemd
. De qualquer forma, está funcionando no meu sistema.Finalmente, eu uso o Arch Linux e
/bin
,/usr/sbin
,/sbin
são todos links simbólicos para/usr/bin
.
systemctl
está dentro /usr/bin
e aceita suspend
assim? O que * nix você está usando?
systemctl suspend
não funciona nas distribuições Debian ou RedHat) e está explicando que você realmente não quer fazer o que está mostrando :). Além disso, tente adicionar 2> /tmp/error
algo para capturar os erros que você possa estar recebendo. Por fim, diga-nos qual usuário está executando este crontab.