我有三个Ubuntu的Upstart脚本:
browser以非特权用户身份运行Firefox的一个实例 screen启动并启动时, browsers启动
browser PORT=1 browser PORT=2 browser PORT=3 screen启动一个Xvfb服务器 链是:
screen从运行级别2,3,4,5开始 browsersconfiguration为start on started screen并stop on stopping screen browser PORT=? 将stop on stopping browsers ,并将由browsers启动 screen启动正常,但不启动browsers (或它和browsers无法启动browser PORT=? )。
如果我sudo start browser PORT=1一切正常,而sudo start browsers甚至不启动本身。
#screen.conf env DISPLAY=:99 env USER=worker start on runlevel [2345] stop on runlevel [!2345] respawn script su ${USER} -c "/usr/bin/Xvfb ${DISPLAY}" end script #browsers.conf start on started screen stop on runlevel [!2345] or stopping screen respawn expect fork #the following "start browser ..." do fork script start browser PORT=4242 start browser PORT=4243 start browser PORT=4244 start browser PORT=4245 end script #browser.conf instance $PORT stop on runlevel [!2345] stop on stopping browsers or stopping screen respawn script su ${USER} -c "/usr/bin/firefox -no-remote -P ${PORT} --display ${DISPLAY}" end script
更新(2010年10月21日):上面的(修改)代码现在工作。 但是,当我需要stop browsers , browser PORT=?所有实例browser PORT=? 正确终止,而“浏览器”卡住了。
我该如何解决这个问题?
Lucid自带了新贵v0.6.x,这意味着你不能有多个“停止”或“开始”行。 您必须将条件与“ and ” or “括号”组合在一起。
您可以阅读init(5)联机帮助页面( 可在线获取或在terminal中运行man 5 init )中的作业说明语法。