Linux:在启动特定服务后启动服务

时间:2014-11-14 11:42:41

标签: linux

我有两个服务A和B,我想在启动时启动。但是A应该首先开始,然后只有B应该开始。

我使用systemctl enable service_name启用了服务。

现在服务正在启动但不是按顺序,即B在A之前启动。有什么办法可以配置他们的启动顺序吗?

2 个答案:

答案 0 :(得分:1)

您可以在A的启动脚本末尾添加以下命令,并禁用B以在启动时启动:systemctl start B

答案 1 :(得分:0)

他们开始乱序,因为Linux使用" makefile样式并发启动"在启动过程中 - A过程比B过程花费更长的时间。延迟进程B的最简单方法是使用sleep命令 - 几秒钟就足够了 - 尽管这会将启动完成延迟一定量(并且,如果进程A需要一个可变的时间来启动,与打开wifi连接等一样,除非你把时间设置得比通常需要的高,否则这可能并不总是有效。

启动过程中更可靠,可能更少的延迟是使用像lsproc | grep proc_a | wc -l这样的东西来检查进程A(或A的子进程)的存在,作为启动进程B的条件 - 将其放入一个睡眠时间为1或2秒的短循环(所以当它等待时它不会占用你的所有CPU)并且它会有效地保持B直到A运行,没有不必要的延迟。

相关问题