在 Beaglebone Black (Debian Buster) 上安装软件包“crontab”时出错

在 Beaglebone Black (Debian Buster) 上安装软件包“crontab”时出错

我正在开发一个关于在 Beaglebone Black Rev. C 上启动时自动运行 pythonscript 的项目,运行 BeagleBoard.org Debian Buster IoT Image 2020-04-06。

我正在尝试遵循本教程的第一部分(我将描述下面的步骤): https://www.engineersgarage.com/autorun-python-script-on-beaglebone-black-boot-part-14-15/

教程中建议的步骤是:

  1. 通过 PC SSH 进入机器
  2. 使用命令安装 crontabsudo apt-get install crontab
  3. 打开 crontab 并使用进行编辑crontab –e
  4. 添加行@reboot sudo python /PATH/TO/SCRIPT/PYTHONSCRIPT.py &

从教程中的屏幕截图来看,crontab 似乎应该安装在与 python 脚本所在的同一文件夹中。

以下是我尝试按照以下步骤操作时所经历的情况:

安装crontab,返回错误:

debian@beaglebone:/media/card$ cd /media/card/Tests
debian@beaglebone:/media/card/Tests$ sudo apt-get install crontab
[sudo] password for debian:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package crontab

etc文件夹中有一个crontab文件。当使用 列出已安装的应用程序时apt list --installed,我在列表中找到以下行:

cron/oldstable,now 3.0pl1-134+deb10u1 armhf [installed]

另外,也许我应该cron从 etc 文件夹创建作业?这样做会有什么缺点吗?

我的项目位于 SD 卡上的一个文件夹中,尽管我已经对其进行了设置以便可以对其进行写入。这会使操作变得复杂吗?

(如果我需要提供更多信息,请告诉我 - 我当然很乐意这样做。)

答案1

首先,我看到您的用户需要密码,因此使用sudoincron将涉及输入密码,这不是示例。最好只运行:

sudo su -

进而

crontab -e

并在里面输入

@reboot python /PATH/TO/SCRIPT/PYTHONSCRIPT.py 

您不需要安装,cron因为我 99.99% 确定它已经安装。如果没有,请检查上面有关包名称的注释。

关于运行python脚本,明智的做法是设置您的用户环境,然后运行脚本。只需创建示例脚本(/PATH/TO/SCRIPT/runp.sh例如)并在以下位置运行它cron

. /home/debian/.bashrc #or whatever is the path to your user
python /PATH/TO/SCRIPT/PYTHONSCRIPT.py 

使脚本可执行并添加cron以下内容:

@reboot  /PATH/TO/SCRIPT/runp.sh

顺便说一句,您不需要将其添加到后台,因为脚本将从 cron 执行到(脚本的)结束

还有一点:请勿使用 SD 卡进行操作存储,他们是不可靠的。

相关内容