【问题标题】:crontab failed to run python script at rebootcrontab 在重新启动时无法运行 python 脚本
【发布时间】:2020-10-17 23:19:46
【问题描述】:

我有一个带有 python 脚本的树莓派零

/home/pi/Documents/camProject

将日期和时间写入 log.txt 文件。

import datetime
import json
now = datetime.datetime.now()
now = str(now)

with open('log.txt','w') as f:
    json.dump(now, f)
    
print('script complete')
print(now)

当我站在 camProject 文件夹中时,我可以从控制台调用和执行脚本。

pi@raspberrypi:~/Documents/camProject $ sudo python3 "/home/pi/Documents/camProject/test.py"
script complete
2020-10-17 08:39:46.238224

我希望这个 test.py 脚本在每次重新启动时运行,所以我从命令控制台执行了

sudo crontab -e

在我写的 crontab 脚本的底部

@reboot sudo python3 "/home/pi/Documents/camProject/test.py"

重新启动树莓派设备后,没有任何反应,日期也没有写入 log.txt 文件。我试过执行

sudo python3 "/home/pi/Documents/camProject/test.py"

从我的主目录

/home/pi

我在控制台中看到了我的 test.py 的打印输出,但 log.txt 没有更新。但是,如果我从 test.py 所在的文件夹执行相同的脚本,一切正常。然后我检查了权限并在我的 camProject 文件夹中

pi@raspberrypi:~/Documents/camProject $ ls -l
totalt 20
-rwxrwxrwx 1 pi pi   66 okt 17 00:00 camVision.py
-rwxrwxrwx 1 pi pi   28 okt 17 08:50 log.txt
-rwxrwxrwx 1 pi pi  167 okt 17 08:33 test.py
-rwxrwxrwx 1 pi pi  115 okt 17 07:45 test.pyc
drwxrwxrwx 2 pi pi 4096 okt 16 14:50 Video

我猜这个问题与 log.txt is not writeable 有关,当 test.py 从命令控制台执行时,执行发生在 camProject 文件夹之外,因此也不是由 crontab 执行的。我不知道如何解决这个问题?

【问题讨论】:

  • /home/pi运行时,是否检查过/home/pi/log.txt是否存在?

标签: python-3.x linux cron debian cron-task


【解决方案1】:

您的程序在当前工作目录中创建文件。 cron 作业在调用用户的主目录中运行;因此,您的 cron 作业将文件写入 root 的主目录(在基于 Debian 的平台上可能是 /root)。

一旦您将文件创建为root,它就只能由root 写入(除非您专门设置权限使其可全局写入,或​​为特定用户组分配写入权限)

可能将您的脚本更改为写入/home/pi/log.txt(如果这是您想要该文件的位置)并确保该文件已经存在,或者如果您以root 运行,则可能在创建它之前切换到pi 用户. (一旦文件以正确的所有者和权限存在,root 可以在不更改所有者或权限的情况下附加到它。)

切线,没有必要在 cron Job 中使用 sudo,它已经以完全 root 权限运行。

【讨论】:

  • 这解决了我的问题。我一直认为 log.txt 的存储将与我的 test.py 的存储位置有关。显然有一些我没有完全理解的东西。正如您所预测的那样,log.txt 文本是从我的 crontab 所在的文件夹中创建的。
  • 这是一个常见的初学者错误。也许阅读Difference between ./ and ~/
猜你喜欢
  • 1970-01-01
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 2023-01-16
  • 1970-01-01
  • 2020-01-01
相关资源
最近更新 更多