Loading... modd不支持wsl2的mnt目录的监控所以需要换工具 [air](https://github.com/air-verse/air) ``` go install github.com/air-verse/air@latest ``` ``` # 启动命令 air -c .air.admin.rpc.toml -build.poll=true -build.poll_interval=1s # 同级配置文件 root = "." tmp_dir = "tmp/admin-rpc" [build] cmd = "go build -o data/server/admin-rpc service/cmd/admin/rpc/admin.go" bin = "data/server/admin-rpc" full_bin = "data/server/admin-rpc -f service/cmd/admin/rpc/etc/admin.yaml" include_ext = ["go", "yaml", "yml"] exclude_dir = ["tmp", "vendor"] [log] time = true [air] poll = 1000 ``` > 这个一次只能启动一个进程 所以需要写一个脚本 ```bash #!/bin/bash AIR_DIR="./air" PIDS=() echo "🚀 启动所有 Air 配置中的服务 (精确监听 + 自动清理)..." # 获取脚本自己的进程组 ID PGID=$(ps -o pgid= $$ | tr -d ' ') for file in "$AIR_DIR"/.air.*.toml; do if [ -f "$file" ]; then service_name=$(basename "$file") echo "▶ 启动 $service_name ..." air -c "$file" -build.poll=true -build.poll_interval=1s & PIDS+=($!) fi done echo "✅ 共启动 ${#PIDS[@]} 个服务" echo "📌 按 Ctrl+C 停止 (会自动杀掉所有 air 进程)" # 捕获 Ctrl+C trap 'echo "🧹 正在清理..."; kill -TERM -$PGID' SIGINT SIGTERM wait ``` 我这个是把配置文件放在根目录下的air目录下 而启动脚本在根目录下 ```yaml root = "service/cmd/admin/rpc" tmp_dir = "../../../../tmp/admin-rpc" [build] cmd = "cd service/cmd/admin/rpc && go build -o ../../../../data/server/admin-rpc ." bin = "data/server/admin-rpc" full_bin = "data/server/admin-rpc -f service/cmd/admin/rpc/etc/admin.yaml" include_ext = ["go", "yaml", "yml"] exclude_dir = ["../../../../tmp", "vendor"] [log] time = true [air] poll = 1000 ``` 需要在项目根目录先创建一个tmp文件夹 最后修改:2025 年 10 月 16 日 © 允许规范转载 打赏 赞赏作者 微信 赞 0 如果觉得我的文章对你有用,请随意赞赏
此处评论已关闭