Ma question principale est la suivante : est-il possible d'exécuter un programme OPENGL via un démon (upstart script) ? Le programme affiche une fenêtre à l'écran.
Plus de détails : J'ai un programme opengl (fait avec openframeworks, C++) que je veux faire tourner avec un démon.
Manuellement, je lance mon programme dans le terminal comme ceci :
planeviz@planeviz:~/src/of/apps/myApps/planeEtoiles/bin$ ./planeEtoiles
Maintenant j'ai créé un upstart script (/etc/init/myapp.conf), qui devrait démarrer le programme lorsque l'ordinateur démarre, et s'assurer de le redémarrer en cas de crash.
# job file
description "myapp"
author "eva"
# When to start the service
start on startup
start on runlevel [2345]
# When to stop the service
stop on runlevel [016]
# Automatically restart process if crashed
respawn
# Start the process
script
sudo /home/planeviz/src/of/apps/myApps/planeEtoiles/bin/planeEtoiles
end script
Puis j'essaie de démarrer le démon via
sudo service myapp start
Mon application ne s'ouvre pas. dmesg me dit :
planeviz@planeviz:/etc/init$ dmesg | grep "init:"
[ 5282.003496] init: myapp main process (8008) terminated with status 139
L'état de terminaison 139 semble indiquer un défaut de segmentation. En regardant la sortie de mon programme dans le journal upstart, je vois que la dernière erreur est liée à la création de la fenêtre opengl.
planeviz@planeviz:/etc/init$ sudo tail /var/log/upstart/planeetoiles.log
....
[ error ] ofAppGLFWWindow: couldn't init GLFW
Je me demande donc s'il est possible d'exécuter des programmes OPENGL avec upstart, ou s'il est uniquement destiné à fonctionner avec les processus d'arrière-plan ?