在我的 Debian 服务器上,我没有网络共享(NFS、SMB,...)。我正在尝试优化和简化我的启动过程。删除以下初始化脚本可以吗?
/etc/rcS.d/S12mountnfs.sh
/etc/rcS.d/S13mountnfs-bootclean.sh
AFAICT,只有在安装 NFS 时才需要这些。但是,我不确定该mountnfs-bootclean.sh
脚本的目的是什么。
无论如何,删除这两个脚本是否安全,即:
chkconfig mountnfs-bootclean.sh off
chkconfig mountnfs.sh off
答案1
我永远不会彻底删除 init.d 脚本......我要做的就是卸载您不再需要的软件包。删除软件包后,应删除 init.d 文件。
软件包删除可以满足您的简化需求,并可能删除一些所需的磁盘空间。
答案2
删除这些脚本并不会真正优化任何东西。他们所花费的时间可以忽略不计。
这些*-bootclean.sh
脚本会清理必须或不应该在重新启动后继续存在的文件:/var/run
、/var/lock
、/tmp
等中的文件。在带有 SysVinit 的 Debian 中,存在三个这样的脚本:
checkroot-bootclean.sh
在挂载根文件系统后立即运行(这可以删除在将很快成为挂载点的目录下创建的虚假文件,例如/run
和 潜在的/tmp
)mountall-bootclean.sh
在安装本地文件系统后运行(包括例如本地单独的/tmp
或/var
- 或 tmpfs 文件系统,但这些文件系统没有任何需要清理的内容)mountnfs-bootclean.sh
在挂载远程文件系统(包括例如/var
通过 NFS)后运行。
禁用mountnfs.sh
并mountnfs-bootclean.sh
不会损害您的系统。然而,要确定这一点,您需要仔细研究它们。此外,这仅适用于您永远不会将 NFS 文件系统放入 fstab 的假设。如果你知道这是真的,那么我非常希望你能将你的占卜能力传授给我。如果您只是相信这是真的,那么您需要考虑您的信念在某些时候被证明是没有根据的风险。
您在发行版中更改的每个默认值都会使您的系统有所不同,因此部分文档不再适用,其他人进行的测试可能不再适用,您可能获得的支持可能会失效,等等。对默认值的任何更改设置本质上是一个额外的复杂性,因此只有在从中获得实际好处时才应该执行。您关于删除这些脚本将简化启动过程的断言是错误的,因为您没有考虑到这一点。
答案3
我没有看到删除这些初始化脚本有任何性能提升。该函数do_wait_async_mount()
解析 fstab,如果没有找到 nfs 文件系统,它什么也不做。在我的系统上执行脚本只需要不到半秒的时间,而且也没有任何 NFS 挂载:
➜ ~ sudo time /etc/init.d/mountnfs-bootclean.sh start
0.00user 0.00system 0:00.11elapsed 0%CPU (0avgtext+0avgdata 1400maxresident)k
24inputs+0outputs (0major+1857minor)pagefaults 0swaps
➜ ~ sudo time /etc/init.d/mountnfs.sh start
0.00user 0.00system 0:00.07elapsed 10%CPU (0avgtext+0avgdata 1400maxresident)k
0inputs+0outputs (0major+1866minor)pagefaults 0swaps
您可以删除它们,但性能提升并不值得付出努力。
答案4
为了解决简单性问题:
- 删除由最小发行版或软件包安装创建的脚本通常是一个坏主意 - 您不知道哪些进程可能依赖它们。
删除包裹创建这些文件的人可能是完全明智的。找出答案:
yum provides /etc/rcS.d/S12mountnfs.sh /etc/rcS.d/S13mountnfs-bootclean.sh
- 如果您无法使用 Debian 实现所需的简单性,或者您想了解有关引导过程如何工作的更多信息,您可能需要尝试类似的准系统发行版拱。