# M3R 缩尺批验 systemd --user 单元模板(50 世界 × 15 模拟日,逐世界流式)。 # # 安装(占位符替换后放入用户单元目录): # mkdir -p ~/.config/systemd/user # sed -e "s|@REPO@|/home/somhairle/projects/living-village|g" \ # -e "s|@TS@|$(date -u +%Y%m%dT%H%M%SZ)|g" \ # -e "s|@COMMIT@|895d792|g" \ # -e "s|@WORKERS@|12|g" \ # deploy/living-village-m3r.service > ~/.config/systemd/user/living-village-m3r.service # systemctl --user daemon-reload # systemctl --user start living-village-m3r.service # 前台等待 exit;不自动重启 # systemctl --user show -p ExecMainStatus living-village-m3r.service # # 进程退不退,system 均不影响本验收:判定只读 acceptance.log 与 /state.json。 [Unit] Description=Living Village M3R scaled batch acceptance (50 worlds x 15 days, streaming) After=default.target [Service] Type=simple WorkingDirectory=@REPO@ Environment=M3R_REPO=@REPO@ Environment=M3R_DIR=@REPO@/artifacts/m3r-acceptance/@TS@ Environment=M3R_COMMIT=@COMMIT@ Environment=M3R_WORLDS=50 Environment=M3R_DAYS=15 Environment=LV_BATCH_WORKERS=@WORKERS@ Environment=M3R_LOG=@REPO@/artifacts/m3r-acceptance/acceptance.log ExecStart=/usr/bin/bash @REPO@/scripts/m3r-master.sh StandardOutput=append:@REPO@/artifacts/m3r-acceptance/acceptance.log StandardError=append:@REPO@/artifacts/m3r-acceptance/acceptance.log Restart=no TimeoutStartSec=infinity TimeoutStopSec=30s