【发布时间】:2023-03-13 17:10:01
【问题描述】:
我有一个 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
【问题讨论】:
-
1) 检查 crond 是否在启动时运行?和 2) 检查 /home/user 是否在 crond 执行时挂载 3) 你的 crond 版本可能不支持 @reboot 你使用 vix 的 crond 吗? ... 显示 crontab -l -u 用户的结果
-
@inquisitor 什么?没有人想触发重启。这是关于在重新启动后执行命令...
-
从这个页面借用:cyberciti.biz/faq/howto-check-cronjob-is-running-not 看来 crond 或其日志没有激活。请注意我正在使用 Lubuntu 并且 chkconfig 未加载。
-
最好将其设置为初始化脚本,而不是依赖特定版本的 cron 的 @reboot。