“systemd-tmpfiles-setup.service”在只读文件系统上速度缓慢

“systemd-tmpfiles-setup.service”在只读文件系统上速度缓慢

在无头嵌入式计算机上(在只读文件系统),我发现这systemd-tmpfiles-setup.service相当慢,并且阻止其他服务提前启动(我检查过systemctl list-dependencies myservice.service)。

如何使其在只读文件系统上更快?

journalctl -u systemd-tmpfiles-setup.service还确认需要近 4 秒:

-- Logs begin at Sat 2021-12-11 01:55:43 GMT, end at Sat 2021-12-11 01:58:03 GMT. --
Dec 11 01:55:**43** foo systemd[1]: Starting Create Volatile Files and Directories...
Dec 11 01:55:**47** foo systemd-tmpfiles[149]: **rm_rf(/tmp): Read-only file system**
Dec 11 01:55:47 foo systemd-tmpfiles[149]: symlink(/etc/machine-id, /var/lib/dbus/machine-id) failed: Read-only file system
Dec 11 01:55:47 foo systemd-tmpfiles[149]: symlink(../proc/self/mounts, /etc/mtab) failed: Read-only file system
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'coredump': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.X11-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.ICE-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.XIM-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.font-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.Test-unix': No such file or directory
Dec 11 01:55:47 foo systemd[1]: Started Create Volatile Files and Directories.

这是结果systemd-analyze plot

在此输入图像描述

答案1

由于systemd-tmpfiles-setup.service中定义,/usr/lib/systemd/...我使用了文章中的“屏蔽”技术“三级关”

通过将服务文件符号链接到 /dev/null,您可以告诉 systemd 永远不要启动有问题的服务并完全阻止其执行。存储在 /etc/systemd/system 中的单元文件会覆盖 /lib/systemd/system 中具有相同名称的单元文件。前一个目录是管理员区域,后一个目录是包管理器的区域。通过在 /etc/systemd/system/ntpd.service 中安装符号链接,您可以确保 systemd 永远不会读取上游提供的服务文件 /lib/systemd/system/ntpd.service。

我做到了

ln -s /dev/null /etc/systemd/system/systemd-tmpfiles-setup.service

我仍然很感兴趣是否有一个“更聪明的解决方案”systemd-tmpfiles-setup.service即使在只读系统上也能工作,而无需等待 4 秒。欢迎评论或其他答案提出想法!

相关内容