算了rc.local。
正如我所说的关于CentOS 7,关于Debian 8和关于Ubuntu 15的那样:
您正在使用systemd + Linux操作系统。 /etc/rc.local是systemd中的双重向后兼容机制,因为它是机制的向后兼容机制,该机制本身就是van Smoorenburg System 5 rc克隆中的兼容机制。
使用/etc/rc.local可能会出错。人们对以下事实感到惊讶:systemd的运行rc.local方式与过去不一样,它们在引导程序中的位置相同。(或者错误地期望:实际上,它并没有在旧系统中运行到最后,正如OpenBSD手册仍然指出的那样。)其他人对于他们为rc.local期待旧的做事方式而设置的事实感到惊讶。然后完全被新的喜欢撤消udev规则,NetworkManager的,systemd-logind,systemd-resolved,或各种“套装” S。
如“ 为什么在安装Arch时`init 0`导致“多余的参数”? ”所示,某些操作系统已经提供systemd 而没有向后兼容功能,例如systemd-rc-local-generatorgenerator。 尽管Debian仍然保留了向后兼容功能,但是Arch Linux在关闭它们的情况下构建了systemd系统。因此,在Arch和类似的操作系统上,它可能/etc/rc.local 会被完全忽略。
算了rc.local。这不是要走的路。您有一个systemd + Linux操作系统。因此,请建立一个适当的systemd服务单元,而不要从向后兼容两个级别的角度出发。(在Ubuntu和Fedora,它是3次来除去,面包车Smoorenburg系统5 rc克隆随后rc.local已经被随后本身两次通过暴发户,然后由systemd取代,在十年前,第一次。)
还要记住迁移到systemd的第一条规则。
这甚至不是systemd特有的新想法。在van Smoorenburg rc和Upstart系统上,要做的是制作适当的van Smoorenburg rc脚本或Upstart作业文件,而不要使用rc.local。甚至FreeBSD的手册也指出,如今人们创建了一个合适的Mewburn rc脚本,而不是使用/etc/rc.local。Mewburn rc在2000年由NetBSD 1.5引入。
/etc/rc.local日期可以从Unix第七版开始。1983年,它被AT&T Unix System 3(在AT&T Unix System 5中稍有不同)取代/etc/inittab并基于运行级别。即使是现在,这也是历史。rc/etc/inittab
为您服务管理体系创建适当的本地服务的定义,不管是对的NOSH工具集的一个服务包service-manager和system-control,一/etc/rc.d/对Mewburn脚本rc,用于systemd服务单元文件,新贵一份工作文件,runit / S6 / daemontools的服务目录-encore,甚至是/etc/init.d/van Smoorenburg的脚本rc。
在systemd中,此类管理员添加的服务单元文件/etc/systemd/system/通常(或/usr/local/lib/systemd/system/很少)进入。使用nosh服务管理器,/var/local/sv/是本地服务捆绑包的常规场所。Mewburn rc在FreeBSD上使用/usr/local/etc/rc.d/。 打包的服务单元文件和服务捆绑包(如果要制作)将放在不同的位置。
进一步阅读