fix(chv): 数据盘挂载升格为 oneshot 服务,浏览器启动时重解析 profile
This commit is contained in:
1 parent
c7ffb1fe6f
commit
5dc75128f8
5 files changed
+145
-12
No files matched your search
+17
-5
@@ -323,14 +323,26 @@ VC_ARGS=(-a "$OUT/disk.raw"
|
||||
--run-command 'dpkg-query -W -f "\${Package} \${Version}\n" > /app/guest-versions-dpkg.txt; pip3 freeze > /app/guest-versions-pip.txt || true'
|
||||
--run-command 'useradd --system --home-dir /var/lib/chv-browser --shell /usr/sbin/nologin chv-browser && mkdir -p /var/lib/chv-browser /run/chv/shots && chown chv-browser:chv-browser /var/lib/chv-browser /run/chv/shots && chmod 0755 /run/chv /run/chv/shots'
|
||||
--run-command 'printf "[Unit]\nDescription=CHV cell broker (Muse P2)\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/usr/bin/python3 /usr/local/bin/chv-broker\nRestart=on-failure\nRestartSec=2\n\n[Install]\nWantedBy=multi-user.target\n" > /etc/systemd/system/chv-broker.service'
|
||||
# 浏览器单元排在数据盘挂载之后(home-chv-workspace.mount 是
|
||||
# cloud-init 生成的挂载单元)。绝不能 After=cloud-final.service:
|
||||
# 数据盘挂载服务(2026-11-08 构建 #10 驱动实证):此前挂盘只靠
|
||||
# cloud-final 的 runcmd 调 chv-data-mount,home-chv-workspace.mount
|
||||
# 是 mount(8) 运行时生成的临时单元、启动事务加载时根本不存在,
|
||||
# 浏览器 After=它纯属空操作——浏览器 21:46:40 启动,挂盘 21:46:45
|
||||
# 才完成,profile 回落本机盘。升格为 oneshot 服务:After=
|
||||
# cloud-config.service(chv 用户与 /home/chv 由它建好),
|
||||
# WantedBy=multi-user.target;浏览器 After 它即真有序。runcmd
|
||||
# 里那行保留(脚本幂等:已挂载即退出),作二次保险。绝不能
|
||||
# After=cloud-final.service(成环,见浏览器单元注释)。
|
||||
--run-command 'printf "[Unit]\nDescription=CHV data disk mount (CHVDATA -> /home/chv/workspace)\nAfter=cloud-config.service\n\n[Service]\nType=oneshot\nExecStart=/usr/local/bin/chv-data-mount\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target\n" > /etc/systemd/system/chv-data-mount.service'
|
||||
# 浏览器单元排在数据盘挂载服务之后。绝不能 After=cloud-final.service:
|
||||
# cloud-final 自己 After=multi-user.target,与浏览器的
|
||||
# Before=multi-user.target(WantedBy 隐含)成环,systemd 启动时
|
||||
# 直接删掉浏览器任务(2026-11-08 构建 #9 驱动实证:服务从未启动、
|
||||
# NRestarts=0、无日志,journal 明言 Job deleted to break cycle;
|
||||
# 构建 #8 同款问题一直被手动 restart 掩盖)。
|
||||
--run-command 'printf "[Unit]\nDescription=CHV browser sub-agent (Muse P2)\nAfter=network.target home-chv-workspace.mount\n\n[Service]\nType=simple\nUser=chv-browser\nGroup=chv-browser\nExecStart=/usr/bin/python3 /usr/local/bin/chv-browser\nRestart=always\nRestartSec=2\n\n[Install]\nWantedBy=multi-user.target\n" > /etc/systemd/system/chv-browser.service'
|
||||
# 构建 #8 同款问题一直被手动 restart 掩盖)。也绝不能
|
||||
# After=home-chv-workspace.mount:那是 mount(8) 运行时生成的
|
||||
# 临时单元(FragmentPath 为空),启动时不存在、排序被忽略,
|
||||
# 构建 #10 驱动实证浏览器比挂盘早 5 秒启动、profile 回落。
|
||||
--run-command 'printf "[Unit]\nDescription=CHV browser sub-agent (Muse P2)\nAfter=network.target chv-data-mount.service\n\n[Service]\nType=simple\nUser=chv-browser\nGroup=chv-browser\nExecStart=/usr/bin/python3 /usr/local/bin/chv-browser\nRestart=always\nRestartSec=2\n\n[Install]\nWantedBy=multi-user.target\n" > /etc/systemd/system/chv-browser.service'
|
||||
--run-command 'printf "[Unit]\nDescription=CHV guest runtime daemon (stage 2: heartbeat/resources/snapshot)\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/usr/bin/python3 /usr/local/bin/chv-daemon\nRestart=always\nRestartSec=2\n\n[Install]\nWantedBy=multi-user.target\n" > /etc/systemd/system/chv-daemon.service'
|
||||
# 构建 #6 驱动实证(2026-11-08):execd 单元缺 KillMode 时默认
|
||||
# control-group,kill -9 主进程后 systemd 重启会 SIGTERM 整个
|
||||
@@ -348,7 +360,7 @@ VC_ARGS=(-a "$OUT/disk.raw"
|
||||
# root:chv-browser(组在镜像构建时已建,tmpfiles-setup 启动时
|
||||
# 能解析——与 syncd 那行因 chv 用户尚不存在被跳过不同);
|
||||
# socket 本身仍由服务 chmod 0600,broker 以 root 连,不受影响。
|
||||
--run-command 'printf "d /run/chv 0775 root chv-browser -\nd /run/chv/shots 0755 chv-browser chv-browser -\nd /run/chv/tasks 0755 root root -\n" > /etc/tmpfiles.d/chv.conf && systemctl enable chv-broker chv-browser chv-daemon chv-execd chv-syncd || true')
|
||||
--run-command 'printf "d /run/chv 0775 root chv-browser -\nd /run/chv/shots 0755 chv-browser chv-browser -\nd /run/chv/tasks 0755 root root -\n" > /etc/tmpfiles.d/chv.conf && systemctl enable chv-broker chv-browser chv-daemon chv-data-mount chv-execd chv-syncd || true')
|
||||
# P1 交接(Muse P1 的 vsock_notify.py):文件在仓库里存在时拷入
|
||||
# 镜像(P1 分支才有,本分支尚无);不存在时只警告、不失败——
|
||||
# 合并后自动生效,P2 不改该脚本内容。
|
||||
|
||||
Reference in new issue
Block a user