J'ai trois Ubuntu Upstart scripts :
-
browser
exécute une instance de firefox en tant qu'utilisateur non privilégié -
browsers
commence lorsquescreen
est démarré et lancebrowser PORT=1
browser PORT=2
browser PORT=3
-
screen
démarre un serveur Xvfb
La chaîne est :
-
screen
commence aux niveaux d'exécution 2, 3, 4, 5 -
browsers
est configuré pourstart on started screen
et àstop on stopping screen
- chaque cas
browser PORT=?
serastop on stopping browsers
et sera lancé parbrowsers
Numéro
screen
démarre bien mais ne démarre pas browsers
(ou il le fait et browsers
ne parvient pas à démarrer browser PORT=?
).
Si je sudo start browser PORT=1
tout fonctionne bien, alors que sudo start browsers
ne démarre même pas lui-même.
Code
#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
MISE À JOUR (10/21/2010) : le code (modifié) ci-dessus fonctionne maintenant. Cependant, lorsque je dois stop browsers
toutes les instances de browser PORT=?
sont correctement terminés, alors que ``browsers`` reste bloqué.
Comment puis-je résoudre cet autre problème ?