Raspbian Jessie, exécuter periodiquement un programme ecrit en C [RESOLU]

Bonjour, bonsoir…

Comme vous l’avez peut être vu lors d’un de mon post sur la lecture d’une sonde AM2302 j’ai réalisé un petit programme en C.

La base de mon développement fonctionne comme ceci :
Si dans une fenêtre SSH ou en local dans un termial (et ce quelque soit mon emplacement dans les répertoires.) « ReadPith »

  • une demande d’information au capteur est réalisée…
  • la réception de la trame…
  • la connexion à la base de donnée…
  • L’insertion des données dans la base en question.

j’ai également créer sur le server web local de mon raspberry plusieurs page php, qui se connecte a la base m’affiche la dernière valeur enregistrée dans la base de donnée…

Mon problème
Je ne sais pas comment afficher en temps réel les valeurs dans ma page web… quelque soit la commande utilisé dans mon script php… exec(ReadPith), passthru, system… etc…

Je voudrais pouvoir effectuer une lecture instantanée de la mesure… je lance ma page php et la valeur de la température et de l’humidité s’affiche ???

Je souhaiterais si la page php n’est pas appelée que le script soit exécuter à intervalle régulier… j’ai regarder pour faire une tache périodique et en cherchant sur le net… Il était dit de créer un fichier

/etc/init.d/ReadPith

avec ce genre de truc à l’interieur :

#! /bin/bash
# 
# Lancement auto

sleep 5m
/usr/local/sbin/ReadPith
exit 0 

Mais dans ma base de donnée rien ne s’ajoute, le script n’est pas réalisé… bref je ne sais pas du tout comment formuler ma recherche dans google ni même comment réaslier au mieux la fonction que je souhaites…

De manière auto à 5 minutes et silencieuse :

  • rafraichissement des infos de la sonde
  • inscription dans la bdd

De manière instantanée :

  • Appeler une page php, qui appel le programme C pour lire les datas
  • les afficher en live dans la page php.

Comment fait il faire pour exécuter périodiquement mon programme ?

Bonjour,

De manière auto à 5 minutes et silencieuse

Dans ce cas, je conseille l’utilisation de la crontab

*/5 * * * * /usr/local/sbin/ReadPith > /tmp/ReadPith.log 2>&1

Ceci lance cette commande toutes les 5 minutes et écrit un fichier de log qui contient le résultat de l’éxécution et des erreurs. Attention, ce fichier de log est écrasé à chaque éxecution.

Faire man crontab pour avoir plus d’infos.

Pour PHP, je connais pas !
A+

Merci, j’ai continuer mes recherches et je viens de voir ton message c’est justement ce quej 'étais en train de tester suite à la découverte de ceci : ctrontab

J’avais également vu des truc avec le chevron (output) mais je n’avais pas compris…
du coup je retourne editer mon fichier :smiley:

petite question ??

Il faut éditer le fichier juste pour le user en cours (ex pi) en tapant dans la console

crontab -e

Pour ta sortie vers un fichier de log

/tmp/ReadPith.log 2>&1

C’est quoi les derniers trucs 2>&1

je suppose que si je regarde man, j’aurais le détail mais après une grosse lecture en anglais… si tu savais me faire un p’tit topo en français de tes paramètres :wink:

Par contre j’ai fait ce que tu m’a indiqué, mais à priori rien ne se passe j’ai placé /1 pour le faire toutes les minutes (sinon c’est trop long).
rien quand je fais

ls /tmp

Pas de trace d’un fichier log pour ReadPith.

Est ce que cron ne doit pas être relancé, y’a t-il un fichier log ?

ATTENTION la bonne ligne de crontab c’est (post précédent mis à jour)

*/5 * * * * /usr/local/sbin/ReadPith > /tmp/ReadPith.log 2>&1

> redirige la sortie vers un fichier
2 sortie des erreurs
1 sortie standard

Explication du lancement de la ligne complète dans mon post précédent.

Si le fichier n’est pas crée c’est qu’il n’y a pas de sortie standard ni d’erreur dans le programme.
Pour tester si la ligne de crontab est valide, remplacer la commande par echo coucou

N.B. : J’ai vu qu’une fois une crontab ne pas fonctionner (suite à une surcharge…). Si ça ne fonctionne pas c’est de ton coté.

A+

Merci pour ta réponse…

malheureusement pour moi rien ne fonctionne, mon Pi2 est fraichement installé et il ne tourne qu’à 1 ou 2% de l’uc a part mon interface graphique, une console et une page web rien ne pompe… dans mon fichier crontab pour l’utilisateur en cours rien de plus que mes deux lignes, j’ai ma tache, est un echo test.

j’ai tenté

sudo service cron restart
sudo service cron stop
sudo sercie cron start

je n’ai pas d’information de retour sur l’execution d’une de ces trois commandes… je vais voir s’il y’a des logs…

j’ai également trouvé pas mal de petites infos claires ICI

Merci de ton aide, en tout, cas…

Oups j’avais pas vu ton ajout de la petite * avant le slash >>> */5

Merci, de ton aide !!!

Après correction suite ton message d’alerte :

tout fonctionne nikel, mon programme est appelé, et les valeurs sont stockées dans la base de données…

un grand MERCI !