Problème démarrage programme perso

Bonjour à tous,

J’ai développé un petit programme qui tourne sur mon rasp3. A partir d’un capteur GPS USB, je récupère en temps réel mes données GPS et les envoient ensuite en réseau à un serveur.

Mon programme fonctionne parfaitement quand je le lance manuellement.
Cependant quand je configure le Rasp pour qu’il lance le programme au démarrage, le programme ne fonctionne pas normalement. L’interface graphique fonctionne correctement, la réception de données GPS aussi, mais la partie réseau ne fonctionne pas. Je ne me connecte pas à mon serveur.

Je précise que le lancement du programme se fait via un fichier .desktop dans le répertoire ~/.config/autostart

merci d’avance pour vos réponses !

J’ai continué à tester d’autres solution. Je viens d’essayer via ‹ cron ›. Le problème ne sembe pas lié au fait de lancer le programme au démarrage. Je m’explique:

J’ai paramétré cron pour qu’il lance mon programme toute les 5 minutes (pour tester). Mais a chaque fois, je ne le voit pas se connecter sur mon serveur, alors que l’interface graphique est bien lancée. Par contre si je le lance manuellement via le terminal, où même via un script sh, le programme tourne parfaitement.
En poussant un peu les tests, j’ai lancé Wireshark sur mon serveur pour voir. Je n’ai aucune trames en provenance de mon rasp quand il lance le programme automatiquement. Alors que je vois bien du trafic réseau quand je lance manuellement…

Je ne comprend pas du tout ce qui se passe …

Hello,

Certainement un soucis de droits

Salut, non je ne pense pas. J’ai donné les droit d’exécution (script et prog) pour tout les utilisateurs. De plus lors de l’exécution manuel je suis juste en utilisateur basic (pi).
et si c’était un problème de droits, normalement le programme ne devrait pas du tout s’exécuter. alors que là j’ai bien l’interface graphique qui se lance quelque soit le cas …

Essai de faire un log de ton programme pour voir a quel moment il bloque.

Merci pour ta réponse.
Donc j’ai suivi ton conseil et effectivement il y a un problème quelque part. Je ne log rien du tout lors de l’execution automatique … Je n’écrit rien dans mon fichier de log …
J’ai demandé d’écrire une phrase au tout début du main.cpp, et en exécution automatique seulement, cela ne se fait pas. Pourtant l’interface graphique s’affiche et mon bouton d’arrêt fonctionne correctement .

Salut,

J’espère ne pas me tromper, j’ai lu de biais :wink:

J’ai un truc automatique qui devait se lancer au démarrage.

J’ai édité alors le fichier avec sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
puis ajouté bêtement la ligne @lxterminal –command=’bash /home/pi/script-total.sh’
Ligne qui passait en manuel.

Et …
ça ne fonctionnait pas.

La ligne @lxterminal –command=’bash /home/pi/script-total.sh’ fonctionne si elle est tapée dans un terminal … mais … n’est pas exécutée au démarrage.

Tentative de sudo chmod +x script-total.sh et … Pas mieux.

J’ai solutionné en modifiant la ligne du autostart avec @lxterminal --command="./script-total.sh"

A tester chez toi ?

Salut, j’y ai cru quand le terminal c’est ouvert !! Mais malheureusement ça n’a pas réglé mon problème… Le programme se lance bien mais ne vient pas se connecter à mon serveur …

Re,

Pour Cron
Modification des tâches cron avec sudo nano /etc/crontab

Puis, ajout de l’action toutes les 5 minutes (je te laisse adapter)

*/5 * * * * root bash /home/pi/dossier/script.sh

Quitter en sauvegardant (“Ctrl + x” puis “o” puis la touche “Entrée”)

Recharger les tâches cron avec /etc/init.d/cron reload

De cette façon, j’ai un autre Rpi (en fait, le même mais qui tourne sur une autre clef USB de Raspbian) qui prend une photo et l’envoie sur serveur (ftp) toutes les 15 minutes.
ça fonctionne nativement au démarrage.

Je t’ai donné mes 2 solutions (mais je suis loin d’être informaticien)

++

Merci pour ta réponse. Mais comme dit plus haut, mon programme se lance bien avec cron, j’ai la fenetre graphique qui s’affiche. Le problème est qu’il est lancé mais ne fonctionne pas correctement (aucune communication réseau). alors que lancé à la main tout va parfaitement.

l’utilisateur root a bien les droits ?

j’ai mis le droit d’exe pour tout le monde.
Mais normalement il execute en pi et pas en root. Mais quand je le lance manuellement, je le lance en pi.