Ho questo set cronjob:
* * * * * /usr/bin/systemctl suspend
E non funziona. Ma posso eseguirlo in una shell e funziona. Non capisco cosa potrebbe non funzionare.
EDIT
Reindirizzare l'output dell'errore per /tmp/error
dare questo:
Failed to issue method call: Access denied
Failed to issue method call: Access denied
La mia domanda è quindi: cronjobs viene eseguito come utente speciale ( cron
ad esempio), il che spiegherebbe che il mio utente può eseguire il comando, ma non cron
se stesso?
Spiegazione aggiuntiva:
Questo è un esempio minimo per mostrare un problema che ho in uno script (ha più senso del singolo comando fornito qui)
systemctl
fa parte disystemd
. Penso che il riavvio, l'arresto, la sospensione stiano funzionando con un utente non root consystemd
. Ad ogni modo, sta funzionando sul mio sistema.Infine, io uso Arch Linux e
/bin
,/usr/sbin
,/sbin
sono tutti i collegamenti simbolici a/usr/bin
.
systemctl
è dentro /usr/bin
e accetta suspend
così? Che * nix stai usando?
systemctl suspend
non funziona su distribuzioni Debian o RedHat) e quindi spiega che non vuoi davvero fare quello che stai mostrando :). Inoltre, prova ad aggiungere 2> /tmp/error
o qualcosa per catturare eventuali errori che potresti riscontrare. Infine, dicci quale utente sta eseguendo questo crontab.