Mam ten zestaw cronjob:
* * * * * /usr/bin/systemctl suspend
I to nie działa. Ale mogę uruchomić go w powłoce i działa. Nie rozumiem, co może nie działać.
EDYCJA
Wyjście błędu przekierowania /tmp/error
daje:
Failed to issue method call: Access denied
Failed to issue method call: Access denied
Moje pytanie brzmi zatem: czy cronjobs są uruchamiane jako specjalny użytkownik ( cron
na przykład), co wyjaśniałoby, że mój użytkownik może uruchomić polecenie, ale nie cron
sam?
Dodatkowe wyjaśnienie:
To minimalny przykład pokazujący problem, który mam w skrypcie (ma to większy sens niż podane tutaj pojedyncze polecenie)
systemctl
jest częściąsystemd
. Myślę, że restart, zamknięcie, zawieszenie działają z użytkownikiem innym niż rootsystemd
. W każdym razie działa w moim systemie.Wreszcie, używam Arch Linux i
/bin
,/usr/sbin
,/sbin
są wszystkie dowiązania do/usr/bin
.
systemctl
jest w /usr/bin
środku i tak to akceptuje suspend
? Jakiego * nix używasz?
systemctl suspend
nie działa na dystrybucjach Debiana lub RedHata), więc wyjaśnia, że tak naprawdę nie chcesz robić tego, co pokazujesz :). Spróbuj także dodać 2> /tmp/error
coś lub coś, aby uchwycić ewentualne błędy. Na koniec powiedz nam, który użytkownik uruchamia ten crontab.