我正在尝试运行从 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
- 我以 root 身份登录。没有其他用户登录。Crontab 配置为
sudo crontab -e
- 环境:RPi 3B+ 上的 Kali Linux(re4son 内核、粘性手指)
- 我读了这个类似的线程但这也尚未解决。
我怎样才能解决这个问题?