为什么 /etc/network/interfaces 在程序更改和随后的重新启动后为空?

Why would /etc/network/interfaces be empty after programmatic changes and subsequent reboot?

我 运行 嵌入式设备上的一个 node.js 服务器提供了一个网络 UI 以允许用户修改网络接口设置 - 例如,从静态更改为 DHCP 或者反之反之亦然,或设置特定的静态 IP 设置(网络掩码、网关)等。使用这些用户驱动的配置参数,我能够以编程方式生成一个新的 /etc/network/interfaces 文件(当然,在将前一个文件备份到 [= 36=.bak 文件)。我什至对新配置文件的日志文件执行 'cat /etc/network/interfaces' 以确认新接口文件的内容和句法有效性。到目前为止,一切都很顺利。

但是,如果我的设备重新启动(在重新启动之前有或没有 /etc/init.d/networking stop/start),我发现很多时候系统会启动/etc/network/interfaces 文件为空,因此没有网络接口。 (幸运的是,我有一个允许 SSH 连接的 JTAG 接口,因此仍然可以连接到我的设备,但对于用户来说,他们的设备基本上是砖砌的。)

什么会导致 OS 清空 /etc/network/interfaces 文件?我认为这必须在系统初始化期间完成 - 但出于什么原因?

如果我使用文本编辑器手动进行相同的更改并重新启动,一切都很好 - 每次都会出现新的界面设置。

我无法解释可能导致此行为的原因。

--

以下是我考虑但已排除的其他因素:

编辑:我的设备基于 TI Sitara uP 运行ning Debian Wheezy 3.14 变体。我 运行 node.js v0.12.x 作为服务器后端。

修改后的文件可能没有刷新到磁盘,而是保留在缓存中。 cat 命令可以从该缓存中读取文件。

尝试使用 sync (see here) 强制刷新到底层存储。