fix(chv): 阶段 2 syncd 改走 systemd RuntimeDirectory=/run/chv-syncd
tmpfiles 行 d /run/chv/syncd 0755 chv chv 没用:tmpfiles-setup 跑在 cloud-init 建 chv 用户之前,属主解析失败整行被跳过, 客内 /run/chv/syncd 根本不存在(2026-11-07 真机实测:镜像 里有这行、目录没有,syncd 反复退出、restart counter 57)。 改走单元 RuntimeDirectory=chv-syncd(服务启动时由 systemd 按服务用户建目录,不依赖启动时序);状态写失败改为记日志 不杀进程;daemon 与驱动的 syncd 路径同步改到 /run/chv-syncd/。
This commit is contained in:
1 parent
8013431f63
commit
42b295fc71
4 files changed
+38
-18
No files matched your search
@@ -290,19 +290,24 @@ class SyncdTest(unittest.TestCase):
|
||||
return path
|
||||
|
||||
def test_syncd_paths_under_chv_owned_subdir(self):
|
||||
# 2026-11-07 真机教训:/run/chv 是 0755 root:root,
|
||||
# chv 身份的 syncd 写不进状态文件与 socket,反复退出、
|
||||
# systemctl 长期 activating。socket 与状态文件须在
|
||||
# chv 所有的 /run/chv/syncd/ 子目录里。
|
||||
# 2026-11-07 真机教训两则:① /run/chv 是 0755
|
||||
# root:root,chv 身份的 syncd 写不进;② tmpfiles
|
||||
# 行 d /run/chv/syncd 0755 chv chv 也没用——
|
||||
# tmpfiles-setup 跑在 cloud-init 建 chv 用户之前,
|
||||
# 属主解析失败整行被跳过、目录根本没建,syncd 反复
|
||||
# 退出、长期 activating。正解:systemd
|
||||
# RuntimeDirectory(服务启动时由 systemd 按服务用户
|
||||
# 建 /run/chv-syncd),状态写失败也不杀进程。
|
||||
self.assertTrue(self.mod.SYNC_SOCK.startswith(
|
||||
"/run/chv/syncd/"))
|
||||
"/run/chv-syncd/"))
|
||||
self.assertTrue(self.mod.STATUS_PATH.startswith(
|
||||
"/run/chv/syncd/"))
|
||||
"/run/chv-syncd/"))
|
||||
daemon = _load_guest_script("chv-daemon.py")
|
||||
self.assertEqual(daemon.SYNC_STATUS, self.mod.STATUS_PATH)
|
||||
with open(_repo("chv-guest", "build.sh")) as fh:
|
||||
text = fh.read()
|
||||
self.assertIn("d /run/chv/syncd 0755 chv chv -", text)
|
||||
self.assertIn("RuntimeDirectory=chv-syncd", text)
|
||||
self.assertNotIn("d /run/chv/syncd ", text)
|
||||
|
||||
def test_resolve_repo_zero_one_many(self):
|
||||
repo, reason = self.mod.resolve_repo(self.mod.WORKSPACE)
|
||||
|
||||
Reference in new issue
Block a user