upstart-链启动服务

upstart-链启动服务

我有以下三项服务:apache2serviceFirstserviceSecond

我想在运行serviceFirst时运行apache2

我想在运行serviceSecond时运行serviceFirst

文件/etc/init/serviceFirst.conf

# Info
description "UDP server"
author "Reggie Williams"

# Events
start on apache2
stop on shutdown

# Automatically respawn
respawn
respawn limit 20 5

script 
     exec >/var/log/test.debug 2>&1 #so I can track when the service runs
     echo Gotcha...
    [ $(exec /usr/bin/php -f /var/www/server/udp/bin/serverrunner.php) = 'critical_error' ] && (stop; exit 1;)
end script

文件/etc/init/serviceSecond.conf

# Info
description "UDP client"
author "Reggie Williams"

# Events
start on (started serviceFirst)
stop on shutdown

# Automatically respawn
respawn
respawn limit 20 5

script 
     exec >/var/log/test2.debug 2>&1 #so I can track when the service runs
     echo Gotcha2...
    [ $(exec /usr/bin/php -f /var/www/server/udp/bin/clientrunner.php) = 'critical_error' ] && (stop; exit 1;)
end script

因此,我在这两个服务中运行我的脚本。除此之外,我为每个服务创建一个文件并将其保存在/var/log.

然而,当我检查这两个文件的创建时间戳时,我发现它们的test.debug创建时间晚于test2.debug

所以我的问题是:这是怎么可能的,以及如何确保在和serviceSecond之后真正开始?serviceFirstapache

答案1

也许你可以/etc/rc.local使用以下命令运行服务&&

编辑/etc/rc.local

sudo nano /etc/rc.local

并添加命令

start service first && start service second

&&让你根据上一个命令是否成功完成来执行某些操作

更准确地说,&&将评估第二个表达式当且仅当第一个表达式返回 0

相关内容