在Ubuntu的世界里,/etc/rc.local
和 /etc/init.d/rc.local
是两条老狐狸,经历过漫长的历史岁月,目睹着系统启动过程的演变。虽然表面看来它们俩关系亲密,似乎只是路径上的一个小小分歧,实则各自扮演着不同的角色,主宰着系统启动时不同的阶段。
首先,让我们来戏剧化地揭开 /etc/rc.local
的神秘面纱。想象 /etc/rc.local
是那位在开场白时登场的角色,他的任务是在系统启动的最后阶段上场,执行那些最后的配置任务和启动脚本。在Systemd大行其道以前,他几乎是每场戏必不可少的角色。简单地说,在过去的Linux发行版中,特别是Ubuntu 16.04及以前的版本,/etc/rc.local
是个开机自启舞台的明星,惯用的来执行各种自定义脚本和命令。
系统刚刚启动,各种服务尚在屏幕上滚动,/etc/rc.local
就悄悄登场,逐一执行用户在其中放置的命令。你的每一个需求,只要写入这个文件,它都会在系统启动的尾巴上默默完成。这就像是你告诉一个智能助手,在你走出家门的那一刻,帮你检查煤气、启动洗衣机或者喂一下宠物。
现在来看 /etc/init.d/rc.local
这位角色。这个文件位于 /etc/init.d
目录,这是个历史悠久的脚本库,充满了各式各样的启动脚本,这些脚本负责着系统启动时各服务的启动顺序和管理。我们可以把 /etc/init.d
目录想象成一个老派的指挥部,里面的 rc.local
则是一个特别的代理人,负责特殊任务。它并不直接向 /etc/rc.local
那样等待执行命令,而是被设计成System V风格的初始化脚本,旨在将 /etc/rc.local
中的命令纳入服务管理体系中,与其它启动脚本并肩作战。
Ubuntu自16.10版本起开始进入了一个新时代,Systemd开始主导舞台,打破了传统 /etc/rc.local
的独角戏。不过,这并不意味着 /etc/rc.local
就此谢幕,它以一种向后兼容的方式存在,只不过不再是那个焦点角色。而伴随着这场变革,/etc/init.d/rc.local
的作用也变得更加微妙,让它的地位看起来有些边缘化。
总结一下,/etc/rc.local
和 /etc/init.d/rc.local
可以说是系统自定义服务的二人转。在Systemd登基以前,/etc/rc.local
是大明星,负责在系统启动的最后一刻执行任务。而 /etc/init.d/rc.local
则扮演着保证 rc.local
文件内容可以被执行的幕后角色。随着Ubuntu版图的更迭和Systemd的崛起,两者都有所转变,但它们依旧是实现系统自启动自定义命令和程序的得力工具,虽然现在要通过一些额外的设置来唤醒它们的能力。此外,由于Systemd的灵活性和强大,推荐使用更加现代化的Systemd单元(unit)文件来替代这些传统方法,这就像在旧城区中建立现代化的交通系统,更快捷、更高效、更安全。
云服务器/高防CDN推荐
蓝易云国内/海外高防云服务器推荐
海外免备案云服务器链接:www.tsyvps.com
蓝易云安全企业级高防CDN:www.tsycdn.com
持有增值电信营业许可证:B1-20222080【资质齐全】
蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。