【问题标题】:Bash alias not found during start-up on raspberry pi在树莓派上启动期间找不到 Bash 别名
【发布时间】: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_profilesource ~/.bashrc 看看你是否得到同样的错误。见this Ask Ubuntu question

标签: python bash cron alias


【解决方案1】:

问题在于运行sudo crontab -e 时实际上是root 用户运行脚本。如果在您的startupTest.py 中没有任何可能需要sudo 权限的特殊代码,只需删除sudo 并将您的命令添加到crontab -e 启动列表中。

【讨论】:

  • 这行得通。谢谢。该文件夹现在正在填充 .txt 文件
猜你喜欢
  • 1970-01-01
  • 2022-12-05
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
相关资源
最近更新 更多