mac定时执行python脚本
时间: 2025-01-07 12:05:50 浏览: 6
### 使用 `launchd` 设置定时任务
对于希望在 Mac 上设置定时任务来定期运行 Python 脚本的情况,推荐使用内置工具 `launchd` 来实现自动化调度。此方法无需安装额外软件,并能处理异步代码,在计算机唤醒时自动执行预定的任务[^2]。
#### 创建 Shell 脚本来调用 Python 程序
为了简化管理并确保环境配置正确无误,建议先编写一个简单的 shell 脚本用于启动 Python 应用程序:
```bash
#!/bin/bash
/usr/bin/python3 /Users/demo/helloworld.py
```
保存上述内容至文件名为 `run.sh` 的脚本中,并赋予其可执行权限:
```bash
chmod +x ~/path/to/run.sh
```
#### 配置 `launchd` 定时器
接下来需创建一个新的 plist 文件定义何时以及如何触发该任务。可以将如下 XML 内容复制到 `/Library/LaunchDaemons/com.example.helloworld.plist` 中(注意调整路径和时间间隔):
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- 指定唯一标签 -->
<key>Label</key>
<string>com.example.helloworld</string>
<!-- 设定工作目录 -->
<key>WorkingDirectory</key>
<string>/Users/demo</string>
<!-- 执行命令 -->
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/python3</string>
<string>/Users/demo/helloworld.py</string>
</array>
<!-- 日程安排:每天晚上十点 -->
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer>22</integer>
<key>Minute</key><integer>0</integer>
</dict>
<!-- 运行失败重试策略 -->
<key>RunAtLoad</key>
<true/>
<!-- 是否保持常驻进程 -->
<key>KeepAlive</key>
<false/>
<!-- 组名仅适用于root用户下 -->
<key>GroupName</key>
<string>wheel</string>
</dict>
</plist>
```
完成编辑后加载新服务:
```bash
sudo launchctl load -w /Library/LaunchDaemons/com.example.helloworld.plist
```
以上操作即完成了通过 `launchd` 实现每晚固定时刻运行特定 Python 脚本的功能设定[^4]。
阅读全文