macOS 中使用 launchd 每分钟执行一次 PHP 脚本的完整配置指南

本文详解如何在 macOS 上通过 launchd(配合 .plist 配置文件)替代传统 cron,实现每分钟自动运行 PHP 脚本,涵盖 plist 编写、权限设置、加载调试及关键避坑提示。 本文详解如何在 macos 上通过 `launchd`(配合 `.plist` 配置文件)替代传统 cron,实现每分钟自动运行 php 脚本,涵盖 plist 编写、权限设置、加载调试及关键避坑提示。在 macOS 系统中,launchd 是官方推荐的守护进程管理机制,比传统 cron 更可靠、更集成,尤其适合用户级定时任务(如每分钟执行一个 PHP 脚本)。与 Linux 的 crontab 不同,launchd 通过 XML 格式的 .plist 文件定义任务行为,支持精确的时间间隔、环境隔离和自动重启等高级特性。? 正确创建 LaunchAgent plist 文件将以下内容保存为 ~/Library/LaunchAgents/com.yourname.php-minutely.plist(请将 yourname 替换为实际用户名,并确保命名符合反向域名规范):<?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.yourname.php-minutely</string> <key>ProgramArguments</key> <array> <string>/usr/bin/php</string> <string>/Users/yourname/projects/myapp/script.php</string> </array> <key>WorkingDirectory</key> <string>/Users/yourname/projects/myapp</string> <key>StartInterval</key> <integer>60</integer> <key>RunAtLoad</key> <true/> <!-- ?? 生产环境默认注释掉;仅调试时启用 --> <!-- <key>StandardOutPath</key> <string>/tmp/php-minutely.log</string> <key>StandardErrorPath</key> <string>/tmp/php-minutely.err</string> --></dict></plist>? 关键字段说明: Label:唯一标识符,必须与文件名一致(不含 .plist 后缀); ProgramArguments:不可用 shell -c 包裹,需显式指定 PHP 解释器路径(建议用 which php 确认)及脚本绝对路径; WorkingDirectory:确保脚本内相对路径(如 include 'config.php';)能正确解析; StartInterval 60:严格按秒计时,每 60 秒触发一次(非"每分钟整点"); RunAtLoad:系统登录后立即启动,避免首次延迟。? 设置权限并加载任务# 设置标准权限(644 是 launchd 强制要求)chmod 644 ~/Library/LaunchAgents/com.yourname.php-minutely.plist# 验证权限(应显示 -rw-r--r--)ls -l ~/Library/LaunchAgents/com.yourname.php-minutely.plist# 加载配置(无需 sudo,因属用户级 LaunchAgent)launchctl load ~/Library/LaunchAgents/com.yourname.php-minutely.plist# ? 可选:立即手动触发一次测试launchctl start com.yourname.php-minutely? 提示:若加载失败,运行 launchctl list | grep yourname 查看是否已注册;错误日志可通过 console.app 搜索 com.yourname.php-minutely 实时追踪。 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能

相关推荐
程序员三藏1 天前
Python+requests实现接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
oradh1 天前
Oracle闪回技术操作总结
数据库·oracle·oracle闪回技术操作总结·oracle闪回·flashback技术
ltl1 天前
RocksDB 并发 Compaction 与 Rate Limiter
数据库
一直走下去-明1 天前
简单的http抓包解包完整代码
开发语言·python
雷帝木木1 天前
数据湖与数据仓库:从理论到实践
人工智能·python·深度学习·机器学习
数字化转型分享点滴1 天前
机加工车间上线 SH‑AIOT 物联网会遇到哪些常见实施难点
python·物联网
闻道且行之1 天前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
0566461 天前
agent学习——流式响应与文本切分
网络·python·学习
OPEN-F1 天前
Python进阶教程:正则表达式进阶与文本处理
开发语言·python·正则表达式
新网企兴1 天前
2026年陕西做GEO推广,找新网企兴解决获客难题
python·搜索引擎