带有 sudo 的 Crontab 在 Debian BeagleBone Black 上不起作用

带有 sudo 的 Crontab 在 Debian BeagleBone Black 上不起作用

在我的 Beaglebone Black 设备上,我想在启动时运行 python 代码,该代码在此处共享https://github.com/acseckin/hmrid。 python代码需要超级用户权限。我在设备上使用的 Debian 版本安装了镜像“Debian 8.7 2017-03-19 4GB SD IOT”。该代码在终端上运行良好。

sudo python /home/debian/hmrid/runhmrid.py

当我附加以下行时,Debian 用户和 root crontab 不起作用。

@reboot sudo python /home/debian/hmrid/runhmrid.py

但是当我为 Debian 用户添加 crontab 时,其他不需要超级用户的代码可以完美工作,例如

@reboot python /home/debian/hmrid/runNotSuperUser.py

答案1

sudo crontab -e使用as将作业放入 root 的 crontab 中

@reboot /full/path/to/python /home/debian/hmrid/runhmrid.py

请注意该作业将被执行没有你平时的环境。这意味着,如果脚本以某种方式依赖于可能影响 Python 行为方式的环境变量,则可能必须在其他地方设置才能使脚本正常工作。

如果您想将此命令的输出记录到单独的文件中,您可以使用

@reboot /full/path/to/python /home/debian/hmrid/runhmrid.py >/tmp/runhmrid.log 2>&1

这会将 cron 作业的所有输出记录到文件中,/tmp/runhmrid.log包括错误消息。

您还可以创建一个 shell 脚本包装器来设置环境(使用一系列export语句)并启动 Python 脚本。那么你可以打电话来自 cron 的脚本。

相关内容