前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行

crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行

作者头像
小菠萝测试笔记
发布2021-11-18 14:55:14
1.1K0
发布2021-11-18 14:55:14
举报

背景

通过 crontab 定时运行 python 脚本来发送钉钉消息

https://cloud.tencent.com/developer/article/1902793

一开始的定时任务
代码语言:javascript
复制
*/1 * * * * python3 /Users/test.py

确定 Python 脚本是否可正常执行

命令行下敲

代码语言:javascript
复制
 python3 /Users/test.py

发现是可以正常运行的

那为什么 crontab 不运行呢?来一步步解决!

OS X 的定时任务统统由 launchctl 来管理的,看看 cron 任务有没有在里面

代码语言:javascript
复制
# 定时任务统统由 launchctl 来管理的,看看 cron 任务有没有在里面
sudo launchctl list | grep cron 

# 有记录。查看一下启动项的配置
locate com.vix.cron

# 创建一个database
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

# 查看 /etc/crontab 是否存在
ls -alF /etc/crontab

# 创建该文件
sudo touch /etc/crontab

以为搞定了!结果一分钟后还是不行

验证 crontab 是否可真正执行
代码语言:javascript
复制
# 每分钟输出当前时间到time.txt上.
*/1 * * * * /bin/date >> /User/time.txt 

一分钟后去看,发现是有文件的,证明 crontab 没问题

关键点:绝对路径

一开始写的定时任务中,python3 是相对路径,这是不对的,应该用绝对路径

代码语言:javascript
复制
*/1 * * * * /usr/local/opt/python@3.9/bin/python3.9 /User/test.py

这样就可以正常执行了!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-11-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • 一开始的定时任务
    • 确定 Python 脚本是否可正常执行
    • 那为什么 crontab 不运行呢?来一步步解决!
      • 验证 crontab 是否可真正执行
        • 关键点:绝对路径
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档