python - @reboot crontab 没有执行

标签 python linux cron

我有一个 Python 脚本,它只是简单地编写一些文本并将其保存到一个文件中

#! /usr/bin/python3
def main():
     filename = '/home/user/testHello.txt'
     openfile = open(filename,"w")
     print("Hello CRON", file = openfile)
if __name__ == "__main__":
     main();

我想在启动时通过 CRON 执行此脚本。所以我使用

编辑 crontab 列表
>crontab -e

我的整个 crontab 看起来像:

SHELL = /bin/bash
PATH = /sbin:/bin:/usr/sbin:/usr/bin
MAILTO = root
HOME = /
# run-parts
1 * * * * /home/user/tester.py
@reboot /home/user/tester.py

这是文件的位置,文件有执行权限。我可以毫无问题地将文件作为命令行脚本运行。然而,当我重新启动机器时,没有生成文件。我试图了解原因,并尝试使用 crontab 条目。

@reboot /usr/bin/python3 /home/user/tester.py

这也没有用。

编辑:

ps aux | grep crond 

给我

user     2259 0.0 0.0.  9436  948 pts/0 S+ 23:39   0:00 grep --color=auto crond

我不确定如何检查 crond 是否正在运行,或者相关用户是否在 CRON 之前/之后挂载。我会尝试:

sudo crontab -e 

但这也没有用。

运行:

pgrep cron

返回 957

最佳答案

根据我刚才的发现,@reboot 语法似乎取决于您正在编辑的crontab。我发现对于系统级的 /etc/cron.d/ 文件夹,那里的条目必须有一个用户,就像常规的基于时间的 crons 一样。

因此这对我有用,在 Ubuntu 14.04 上,在启动时以 root 身份运行指定的命令:

@reboot root /home/vagrant/log.sh

关于python - @reboot crontab 没有执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18158427/

相关文章:

Python - 缩短冗余循环

c - 在 linux 中使用 PF_PACKET 错误设置 IP_HDRINCL

bash - 如何仅检查自上次 checkin bash以来添加的行

python - ffmpeg的子进程调用返回负值

python - 相当于 Haskell 中的 python eval

mysql - Docker 无法启动没有这样的文件或目录的容器

python - 为什么从 python 调用 shopt 会失败?

jenkins - 预定的 Jenkins 构建不起作用

cron - 如何每72分钟执行一次Cron工作

python - 获取第二个系列中第一个系列中元素的索引