/run已经安装得够早了。

/run已经安装得够早了。

在 raspbian GNU/Linux 8 系统上,我在启动过程中收到以下错误:

ifplugd(eth0)[214]: Executing '/etc/ifplugd/ifplugd.action eth0 up'.
ifplugd(eth0)[214]: client: /sbin/ifup: failed to open lockfile /run/network/.ifstate.lock: No such file or directory
ifplugd(eth0)[214]: client: run-parts: /etc/ifplugd/action.d//ifupdown exited with return code 1
ifplugd(eth0)[214]: Program execution failed, return value is 1.

随后,ifplugd 重复该操作并成功。我怀疑最初的失败是由于 /run 未安装。我的问题是:

  1. 这是正常行为还是错误/配置错误? ifplugd 运行时 systemd-fsck 仍在运行,所以 ifplugd 似乎有点早?我可以忽略这个问题吗?

  2. 挂载 /run 似乎是 /etc/fstab 不处理的特殊情况,因为它需要很早就出现。那么哪个部分控制/run的挂载呢?这是由systemd完成的吗?如果是的话,systemd 的哪一部分?

答案1

/run已经安装得够早了。

你的诊断有误。

/runsystemd由作为进程 #1 运行的程序安装。它是 systemd 在开始启动服务和目标之前安装的所谓“API 文件系统”之一。事实上,systemd 允许/run在进程 #1 执行程序本身之前由引导程序的 initrd 阶段安装systemd。无论问题的原因是什么,都不是因为/run未安装。

鉴于问题出在 中的文件上/run/network/,实际上您的第一个想法应该是/run/network/此时目录是否存在于引导程序中?引出这个问题什么创建/run/network/目录?导致networking运行脚本的服务以及它是在运行脚本的服务/etc/init.d/networking之前还是之后运行。要获得答案,请参阅您正在查看的日志。 ☺ifplugd/etc/init.d/ifplugd

是的,该ifplugd服务依赖于networking首先启动的服务。不,他们的 van Smoorenburgrc脚本实际上并未对这种顺序进行编码。

进一步阅读

相关内容