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

相关推荐
Decay__1 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
代码山河4 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行4 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
梯度下降者4 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
小徐不徐说6 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
“AI国潮设计-小江”6 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
论文复现现场6 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
benchmark_cc7 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
伞伞悦读7 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
Decay__7 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构