如何让 Ubuntu 服务器在启动时按照特定顺序运行服务?
我读了一些关于和 的内容Upstart
,但我不确定正确的方法是什么。init.d
inittab
谢谢,
乌迪
答案1
查看命令update-rc.d
,这是设置服务启动和停止的标准 Debian/Ubuntu 方式。该文件/etc/init.d/skeleton
也是一个相当不错的模板,可以快速且正确地创建自己的服务。
答案2
除了 upstart(我对此不太了解)之外,顺序由 rcX.d 目录中的数字决定(其中 X 是运行级别)。
通常,在 Ubuntu 中,正常使用运行级别 2。您可以将脚本放入并使用以下语法/etc/init.d/
创建符号链接:/etc/rcX.d
- S 启动或 K 停止服务
- 表示执行顺序的两位数(数字越小,执行越快)
- 脚本的名称
如果你的脚本是number42
这样做的:
$ sudo cp number42 /etc/init.d
$ sudo ln -s /etc/init.d/number42 /etc/rc2.d/S99number42
停止它将是相同的,但使用 K 并且处于运行级别 0 和 6。
系统配置信息可以帮助您直观地了解哪些脚本在哪个运行级别上运行。
sysv-rc-conf http://ubuntu-tweak.com/wp-content/uploads/2007/09/sysv-rc-conf.png
答案3
您提到按特定顺序,但如果您的意思是您有多个进程,并且您需要它们按指定的顺序运行,但是后所有其他启动时进程都已启动,您可以轻松使用 /etc/rc.local。
只需按照您指定的顺序将所有命令放入该文件中,它将在所有其他启动过程启动后由 /bin/sh 执行。确保您的进程分离,或在每行末尾附加一个 &,否则您的启动将挂起!
上述解决方案更加强大,这种方法更加快速而简单。