![带有 sudo 的 Crontab 在 Debian BeagleBone Black 上不起作用](https://linux22.com/image/114365/%E5%B8%A6%E6%9C%89%20sudo%20%E7%9A%84%20Crontab%20%E5%9C%A8%20Debian%20BeagleBone%20Black%20%E4%B8%8A%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
在我的 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 的脚本。