在 macOS 上,推荐使用 launchd 来实现 Flask 项目的开机自启。launchd 是 macOS 的系统服务管理框架,可以方便地管理用户级或系统级的后台任务。
确认你的 Flask 项目路径和 Python 环境。假设:
/Users/yourname/myflaskappapp.py(假设使用 app.run() 或类似)/Users/yourname/myflaskapp/venv/bin/python3注意:Flask 开发服务器(app.run())通常不建议用于生产环境,但自启测试或内部使用是可行的。如需生产,建议使用 gunicorn 等 WSGI 服务器,但 launchd 配置原理类似。
plist 文件是 launchd 的配置文件,扩展名为 .plist。
在用户级(开机后当前用户登录时启动)时,文件应放在 ~/Library/LaunchAgents/ 目录下。如果希望系统级启动(无需登录),则放在 /Library/LaunchDaemons/,但需要 sudo 权限且启动用户为 root,通常不推荐用于 Flask。
这里以用户级自启为例。
mkdir -p ~/Library/LaunchAgents
nano ~/Library/LaunchAgents/com.yourname.flaskapp.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.yourname.flaskapp</string>
<key>ProgramArguments</key>
<array>
<string>/Users/yourname/myflaskapp/venv/bin/python3</string>
<string>/Users/yourname/myflaskapp/app.py</string>
</array>
<key>WorkingDirectory</key>
<string>/Users/yourname/myflaskapp</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/yourname/myflaskapp/logs/flask.log</string>
<key>StandardErrorPath</key>
<string>/Users/yourname/myflaskapp/logs/flask.err</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
</dict>
</plist>
python 完整路径。true,表示启动时立即运行。true,进程意外退出时自动重启。logs 目录,便于调试。PATH 环境变量,确保能找到系统命令。使用 launchctl 命令加载并启动服务:
# 加载服务(如果已加载则先卸载再加载)
launchctl load ~/Library/LaunchAgents/com.yourname.flaskapp.plist
# 启动服务(如果 RunAtLoad 为 true,则加载后即启动)
launchctl start com.yourname.flaskapp
检查服务状态:
launchctl list | grep com.yourname.flaskapp
如果输出中包含服务名且状态为 0,表示正常运行。
tail -f ~/myflaskapp/logs/flask.log 和 flask.err,确认程序正常启动。ProgramArguments 中的命令,确保能在终端中启动 Flask。重启电脑,登录后检查 Flask 服务是否自动运行。访问 http://localhost:5000(或你配置的端口)确认。
如果服务未启动,可以:
~/Library/LaunchAgents/ 目录下。launchctl load 重新加载。log show --predicate 'subsystem == "com.apple.launchd"' | grep com.yourname.flaskapp常用命令:
# 停止服务
launchctl stop com.yourname.flaskapp
# 卸载服务(禁用开机自启)
launchctl unload ~/Library/LaunchAgents/com.yourname.flaskapp.plist
# 重新加载(修改 plist 后使用)
launchctl unload ~/Library/LaunchAgents/com.yourname.flaskapp.plist
launchctl load ~/Library/LaunchAgents/com.yourname.flaskapp.plist
app.run(port=5001) 避免冲突。FLASK_APP),可在 EnvironmentVariables 中设置。python 可执行。app.run())不适合生产,建议使用 gunicorn 或 waitress,然后通过 launchd 启动。如果不想用 launchd,也可以在“系统偏好设置” -> “用户与群组” -> “登录项”中添加启动脚本(如 .sh 文件)。但该方法不提供自动重启、日志管理等功能,不如 launchd 灵活。
按照以上步骤,你的 Flask 项目就能在 macOS 上实现开机自启了。如果遇到问题,请检查日志和 plist 配置。
想买混动车,到底应该怎么选
小白如何挑选笔记本不踩坑?2025笔记本电脑选购指南,含国补和新品推荐
夏季空调使用指南:空调怎么用节能又舒服
安卓手机Magisk 安装教程之 mi-boot
枫可怜(楓カレン,出道名 田中柠檬)电影作品全集
王安宇 、王玉雯主演爱情电视剧《值得爱》全26集BT迅雷下载
Lightroom Classic 2025 直装激活版+绿色便携版(LR/LRC v14.5 图片编辑软件)百度网盘下载
SolidWorks中如何用图片直接生成草图?
Affinity 三件套 iPad 版限时免费开放,注册购买即可永久解锁(附操作指南)
如何修改 SolidWorks 轴测图视角方向
快速选中遮挡零件,SolidWorks装配体预览窗口操作指南
PyCharm中怎么接入DeepSeek