算了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-generator
generator。 尽管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/
。 打包的服务单元文件和服务捆绑包(如果要制作)将放在不同的位置。
进一步阅读