review: apply consultant batch-05 (devops re-review) fixes to 11 posts
- 11/telegram: rebuild the b"\r\n".join() explanation around the two real failure modes (line-splitting binary + doubled CRLF before Content-Disposition); fix the CR-eaten escapes that broke the inline code and the parts[] sample; close the Round 3 PID 1 vs docker exec gap; drop the leftover EN/ZH family framing; add the host anchor - 04/09: the zero-block CRC32C belongs on the found side, not wanted; note the little-endian print order (0x98f94189 -> 0x8941f998); close the 09-22 scrub window and link the TRIM sequel from 09's result - 06: losetup -p is --pass-fd, not a priority; explain the -2 in /proc/swaps - 03: UDMA_CRC only counts ICRC frame faults; add the destructive-write warning to the raw fio recipe - 02: CONFIG_CFS_BANDWIDTH, not 'no CFS scheduler'; SME wording in the ZH CTA - 01: three reclaims (115.8 + 5.0 GiB), 344 GiB/8d = 1.8 GiB/h not 1.5 - 05/07/10: blueprint fields; 10 filters blank snapshot lines + names the empty-snapshot overwrite case; 07 comments that a container name survives recreation
This commit is contained in:
1 parent
a7d1cbaf3a
commit
19de315201
20 files changed
+155
-120
No files matched your search
@@ -3,6 +3,8 @@ title: "为什么容器里的 Chrome 会忘记标签页 —— 以及我是怎
|
||||
description: "Chrome 的「继续上次浏览」在 Docker 容器里根本不会生效:三次失败的尝试、真正的原因,以及最后管用的 70 行守护脚本。"
|
||||
pubDate: 2026-09-29
|
||||
category: devops
|
||||
blueprint: ai-agent-automation
|
||||
blueprintLayer: L1-deterministic-orchestration
|
||||
tags: [docker, chrome, cdp, persistence, synology, self-hosting]
|
||||
ogImage: /og/zh-why-chrome-forgets-its-tabs-in-a-container.jpg
|
||||
banner: /banners/why-chrome-forgets-its-tabs-in-a-container.jpg
|
||||
@@ -141,7 +143,7 @@ def open_tabs():
|
||||
return [t.get("url", "") for t in tabs
|
||||
if t.get("type") == "page" and t.get("url", "").startswith("http")]
|
||||
|
||||
saved = [u.strip() for u in open(STORE)] if os.path.exists(STORE) else []
|
||||
saved = [u.strip() for u in open(STORE) if u.strip()] if os.path.exists(STORE) else []
|
||||
|
||||
# 1) restore — wait up to 3 minutes for the browser to come up
|
||||
if saved:
|
||||
@@ -232,6 +234,7 @@ docker restart chrome && docker restart chrome-relay # order matters
|
||||
- **确认谁有权限写那条策略。** `root:root`、`644`,放在 `/etc/opt/chrome/policies/managed` 下才是对的形状;用户可写的策略文件会被静默忽略。
|
||||
- **把「浏览器在跑」和「容器在跑」当成两个不同的问题。** 残留 singleton 那次故障,从外面看就是一个健康的容器。
|
||||
- **与其让软件记住状态,不如自己存快照。** 任何关闭路径上带强杀的软件 —— 容器、kiosk、桌面会话 —— 都不是依赖「干净退出」记账的好地方。一个 60 秒一次、原子写入的快照很无聊,但它管用。
|
||||
- **小心「空快照」这条边界。** 因为第 2 步连空列表也会写(这是「我把标签页全关了」得以被尊重的方式),如果浏览器在会话中途挂掉、被桌面会话以空白状态重新拉起,60 秒后它就会把空标签页快照写进去,把上一份好文件覆盖掉。最省事的护栏是:从 `/json/version` 里记住浏览器的 `webSocketDebuggerUrl`,只有当实例还是你启动的那一个时,才允许覆盖快照。
|
||||
|
||||
## 结果
|
||||
|
||||
|
||||
Reference in new issue
Block a user