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/errordare 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 ( cronad esempio), il che spiegherebbe che il mio utente può eseguire il comando, ma non cronse stesso?
Spiegazione aggiuntiva:
Questo è un esempio minimo per mostrare un problema che ho in uno script (ha più senso del singolo comando fornito qui)
systemctlfa 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,/sbinsono tutti i collegamenti simbolici a/usr/bin.
systemctlè dentro /usr/bine accetta suspendcosì? Che * nix stai usando?
systemctl suspendnon funziona su distribuzioni Debian o RedHat) e quindi spiega che non vuoi davvero fare quello che stai mostrando :). Inoltre, prova ad aggiungere 2> /tmp/erroro qualcosa per catturare eventuali errori che potresti riscontrare. Infine, dicci quale utente sta eseguendo questo crontab.