我为 root 用户 ( )进行了以下crontab
设置sudo crontab -e
@reboot cd /home/pi/ && python3 myscript.py 2>&1 >> log.txt
在myscript.py
给定时间执行以下命令:
import subprocess
subprocess.call('shutdown -h now', shell=True)
问题是当此命令在重新启动时作为 crontab 运行时出现以下错误:
/bin/sh: 1: shutdown: not found
而当我以 root 用户身份登录后运行以下行时:
cd /home/pi/ && python3 myscript.py 2>&1 >> log.txt
一切正常,系统在没有该错误的情况下关闭。
即使我没想到,这两个命令的执行方式似乎也有所不同。可能是 crontab @reboot 以某种方式具有不同的上下文,因此与root 用户执行该命令时的行为不完全相同?