【发布时间】:2021-06-30 07:01:43
【问题描述】:
我正在尝试在 debian Raspberry Pi 启动时运行一个简单的脚本,其中
startupTest.py 将运行时间写入 .txt 文件
$python3 /home/pi/startupTest.py
在命令行中成功运行
$ python /home/pi/startupTest.py
在命令行中成功运行
但是使用
$ sudo crontab -e 写信
@reboot python3 /home/pi/startupTest.py &
产量
bash: alias: python: not found
bash: alias: /usr/local/bin/python3.8: not found
bash: alias: python: not found
bash: alias: /usr/local/bin/python3.8: not found
bash: alias: python: not found
bash: alias: /usr/local/bin/python3.8: not found
好的,我在那个目录中缺少 python3.8 吗?没有
$ ls /usr/local/bin 显示 python3.8
我是一名机械工程专业的学生,试图让测试系统适用于我的高级设计项目。
【问题讨论】:
-
我不确定是否在 Debian 下,但对于许多 cron 版本,默认的
PATH不包括 /usr/local/bin。 /usr/bin/python3 和/或 /bin/python3 是否存在?另外,您在哪里看到那些“bash: alias: ... 消息(交互方式,在日志中等)?尝试使用 python 的显式路径(可能是/usr/local/bin/python3.8或类似的东西)。 -
看看这里:raspberrypi.stackexchange.com/questions/72644/… 执行@reboot 命令时,可能是您的环境没有完全加载。我不确定如何安全地解决这个问题。可以选择在 crontab 命令之前添加睡眠。但我建议您使用 systemd 单元以及链接的 stackexchange 帖子描述; systemd 无论如何都在 crontab 的底层运行(现在)。
-
@GordonDavisson 启动后打开命令行时会显示 bash 别名消息。
-
@J.Doe 那么这些可能来自您的 shell 初始化文件之一(可能是 ~/.bash_profile 或 ~/.bashrc),而不是来自 cron 作业。试试
source ~/.bash_profile和source ~/.bashrc看看你是否得到同样的错误。见this Ask Ubuntu question。