如何在 macOS 中使用 launchd 每分钟执行一次 PHP 脚本

本文详解如何通过 launchd(配合 .plist 配置文件)在 macos 上精准实现每 60 秒自动运行一个 php 脚本,替代传统 cron,兼顾稳定性、用户会话感知与系统级管理能力。 本文详解如何通过 launchd(配合 .plist 配置文件)在 macos 上精准实现每 60 秒自动运行一个 php 脚本,替代传统 cron,兼顾稳定性、用户会话感知与系统级管理能力。在 macOS 中,launchd 是官方推荐的守护进程管理机制,比 cron 更可靠、更安全,尤其适合需要与用户登录会话绑定的定时任务(如本地开发环境中的轮询、缓存刷新或轻量级队列处理)。要让一个 PHP 脚本每分钟执行一次,关键在于编写符合规范的 LaunchAgent 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/scripts/sync.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>?? 重要说明:ProgramArguments 中必须使用 绝对路径:/usr/bin/php(macOS 自带)或 which php 输出的实际路径(如 /opt/homebrew/bin/php);PHP 脚本路径也需绝对化。WorkingDirectory 应设为脚本依赖的根目录(例如含 vendor/ 或配置文件),避免因工作路径错误导致 require 失败或相对路径解析异常。StartInterval 60 表示固定间隔执行(从上一次执行结束开始计时),非"整点触发"。若需严格按系统时间对齐(如每分钟第 0 秒启动),应改用 StartCalendarInterval(但本场景不推荐,因其复杂度高且易受延迟影响)。? 步骤二:设置权限并加载服务执行以下命令确保 plist 文件权限合规(644 是 launchd 强制要求):立即学习"PHP免费学习笔记(深入)"; Tellers AI Tellers是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。

相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
此时不提桶,更待何时2 天前
01-06-A-JVM排查实战详解
java·jvm
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G2 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备2 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas