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/errordaje:
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 ( cronna przykład), co wyjaśniałoby, że mój użytkownik może uruchomić polecenie, ale nie cronsam?
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)
systemctljest 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,/sbinsą wszystkie dowiązania do/usr/bin.
systemctljest w /usr/binśrodku i tak to akceptuje suspend? Jakiego * nix używasz?
systemctl suspendnie 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/errorcoś lub coś, aby uchwycić ewentualne błędy. Na koniec powiedz nam, który użytkownik uruchamia ten crontab.