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 version1.0 encodingUTF-8?!DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtdplist version1.0dict keyLabel/key stringcom.yourname.php-minutely/string keyProgramArguments/key array string/usr/bin/php/string string/Users/yourname/projects/myapp/script.php/string /array keyWorkingDirectory/key string/Users/yourname/projects/myapp/string keyStartInterval/key integer60/integer keyRunAtLoad/key true/ !-- ?? 生产环境默认注释掉仅调试时启用 -- !-- keyStandardOutPath/key string/tmp/php-minutely.log/string keyStandardErrorPath/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因属用户级 LaunchAgentlaunchctl 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 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2521475.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!