本文详解如何在 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 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能
相关推荐
happylifetree5 分钟前
Python34-35:核心语法-流程控制语句-循环-综合案例AC赳赳老秦13 分钟前
OpenClaw 数据引用规范自动生成:为公开数据构建可信来源标注与标准引用体系吃饱了得干活19 分钟前
Agent 的记忆与工具:从上下文窗口到 MCP燐妤1 小时前
LangGraph-复习总览小蒜学长1 小时前
校园社团招新网站的设计与实现(代码+数据库+LW)尹人入圣1 小时前
市面上IP驱动产业新场景新工具打工仔折腾 AI1 小时前
从BPE到SentencePiece:Transformer分词原理与Python实战对比骑着蜗牛撵大象3272 小时前
Qt 事件机制详解:从 QEvent 派生类到事件过滤器的全景指南流形填表2 小时前
题库迁移实战:Excel中间格式与列映射东方芷兰2 小时前
Agent 技术摘要 06 —— Harness、原生视觉、Jev、mmproj、dsh