Launchd 'Invalid Property List'及定时Python脚本无法运行求助
关于launchctl脚本配置与运行的问题
需求
- 每天凌晨3:15运行已调试正常的Python脚本
- 电脑24小时开机,希望适配关机/中断后的自动运行
初始加载错误
执行加载命令时返回无效属性列表:
jace@Jaces-Mac-Pro ~ % launchctl load /Users/jace/Library/LaunchAgents/com.launchd.phoneconfig.plist /Users/jace/Library/LaunchAgents/com.launchd.phoneconfig.plist: Invalid property list jace@Jaces-Mac-Pro ~ %
原始plist文件内容
<?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.launch.phoneconfig</string> <key>ProgramArgument</key> <array> <string>/usr/local/bin/python3</string> <string>/Users/jace/Desktop/Filing_Cabinet/Python_Folder/Selenium_Projects/my_phone_config01.py</string> </array> <key>RunAtLoad</key> <true/> <key>StartCalendarInterval</key> <dict> <key>Hour</key <integer>3</integer> <key>Minute</key> <integer>15</integer> </dict> </dict> </plist>1
附言:曾尝试将文件放入Mac的launch Daemon文件夹,但Library中仅能找到LaunchAgents文件夹,不确定是否有影响,可提供更多信息。
期望目标:脚本在指定时间自动加载运行,执行launchctl list命令时能看到该plist条目。
错误排查与修复(评论更新)
通过plutil -lint命令定位到XML语法错误:
修复前检测结果:
jace@Jaces-Mac-Pro LaunchAgents % plutil /Users/jace/Library/LaunchAgents/com.launchd.phoneconfig.plist /Users/jace/Library/LaunchAgents/com.launchd.phoneconfig.plist: Encountered unexpected character < on line 17 while looking for close tag
修复XML语法后,检测显示正常:
jace@Jaces-Mac-Pro LaunchAgents % plutil -lint /Users/jace/Desktop/Filing_Cabinet/LaunchD_Folder/launch_phoneconfig/com.launchd.phoneconfig.plist /Users/jace/Desktop/Filing_Cabinet/LaunchD_Folder/launch_phoneconfig/com.launchd.phoneconfig.plist: OK
但再次加载时出现新错误:
jace@Jaces-Mac-Pro LaunchAgents % launchctl load /Users/jace/Desktop/Filing_Cabinet/LaunchD_Folder/launch_phoneconfig/com.launchd.phoneconfig.plist /Users/jace/Desktop/Filing_Cabinet/LaunchD_Folder/launch_phoneconfig/com.launchd.phoneconfig.plist: Invalid or missing Program/ProgramArguments jace@Jaces-Mac-Pro LaunchAgents %
当前问题(回答更新)
按建议将程序与程序参数分开配置后,plist检查显示正常,launchctl list也能看到该条目,但脚本未实际运行(手动运行Python脚本完全正常),寻求解决建议。
当前状态验证:
Last login: Wed Nov 30 14:44:29 on console jace@Jaces-Mac-Pro ~ % plutil /Users/jace/Library/LaunchAgents/com.launchd.phoneconfig.plist /Users/jace/Library/LaunchAgents/com.launchd.phoneconfig.plist: OK jace@Jaces-Mac-Pro ~ % launchctl list PID Status Label - 0 com.launch.phoneconfig (移除了其他返回项以清晰显示已加载) jace@Jaces-Mac-Pro ~ %
内容的提问来源于stack exchange,提问作者JaceExton
相关产品推荐
相关产品推荐

