crontab에서 호출된 스크립트를 실행하려고 하는데 systemctl
명령이 실행되지 않습니다. 다른 스크립트는 crontab에서 잘 작동합니다. 스크립트는 터미널에서 실행될 때 작동합니다.
스크립트는 다음과 같습니다.
#!/bin/bash
date &>> ~/Desktop/logs/resiliostatus.txt
systemctl --user status resilio-sync | sed -ne '1,3p' &>> ~/Desktop/logs/resiliostatus.txt
exit 0
내 로그 파일의 출력은 다음과 같습니다.
Thu Jan 17 02:17:17 CET 2019
● resilio-sync.service - Resilio Sync service
Loaded: loaded (/usr/lib/systemd/user/resilio-sync.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-01-17 01:01:55 CET; 1h 15min ago
Thu Jan 17 03:00:01 CET 2019
Thu Jan 17 04:00:01 CET 2019
Thu Jan 17 05:00:01 CET 2019
첫 번째 항목은 터미널에서 호출될 때의 모습입니다. 하지만 보시다시피 crontab의 호출은 실행만 되고 실행 date
되지는 않습니다.systemctl
crontab의 모습은 다음과 같습니다.
SHELL=/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/lib/systemd
# m h dom mon dow command
*/15 * * * * /root/Desktop/backupscripts/cputempscript
*/30 * * * * /root/Desktop/backupscripts/ipdnsscript
0 * * * * /root/Desktop/backupscripts/ntpscript
*/5 * * * * /root/Desktop/backupscripts/resiliostatscript 2> /tmp/error
처음 세 스크립트는 제대로 작동하지만 마지막 스크립트는 작동하지 않습니다. /tmp/error에 저장한 오류:Failed to connect to bus: No such file or directory
- 저는 루트로 로그인했습니다. 다른 사용자는 로그인되어 있지 않습니다. Crontab은 다음과 같이 구성됩니다.
sudo crontab -e
- 환경: RPi 3B+의 Kali Linux(re4son 커널, Sticky Fingers)
- 나는 이것을 읽었다유사한 스레드하지만 그것도 해결되지 않았습니다.
이 문제를 어떻게 해결할 수 있나요?