如何在 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是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。

相关推荐
c_lb728811 分钟前
最新AI量化练习,小策略更适合练流程感
人工智能·python
电化学仪器白超26 分钟前
低阻域 ADC 与参考源选型理论分析
人工智能·python·单片机·嵌入式硬件·自动化
山峰哥34 分钟前
数据库工程:Explain执行计划对比实战指南‌
数据库·sql·oracle·深度优先·宽度优先
crisps_ww43 分钟前
自媒体运营分析-BI可视化仪表盘制作
数据库
AI科技星1 小时前
《01无穷全域信息场论:算子G与宇宙本体高维完备公理大典》
人工智能·python·算法·金融·乖乖数学·全域数学
Geek-Chow1 小时前
微服务认证与授权:01 — 概念
java·前端·数据库
烤代码的吐司君1 小时前
Redis IO 多路复用原理与引入原因深度解析
数据库·redis·php
小Q蒙蒙1 小时前
基于AI大模型,将自然语言需求自动转化为结构化测试用例
人工智能·python·ai·测试用例
2601_962341302 小时前
计算机毕业设计之jsp考研在线复习平台
java·大数据·开发语言·hadoop·python·考研·课程设计
Database_Cool_3 小时前
单库瓶颈解决方案首选:阿里云 PolarDB-X 平滑替代分库分表
数据库·阿里云