#1 Le 31/12/2015, à 15:08
- marcel6566
[RESOLU] GAMMU et DEMMARRAGE de l'OS !
Bonjour et merci par avance pour votre aide.
Mes SMS ne sont pas envoyées au démarrage !!!
Sous Raspbian avec un RPI, j'utilise une clé 3G et GAMMU.
En ligne de commandes j'envoie correctement mes SMS.
Dans un programme C++ compilé, j'envoie correctement mes SMS, via un script basic. "./mon_programme"
Mon programme s'exécute bien au démarrage de l'OS via update-rc ...
Mais lors de ce démarrage l'envoi des sms ne se fait pas ???
Je sèche, car je ne trouve rien dans les log qui m'interpellent.
Merci et bon réveillon !
Mon programme en C++
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <glib.h>
#include <glib/gprintf.h>
int main(int argc, char *argv[])
{
int comptvaleur = 0;
char url[100];
do {
sprintf(url, "%s", "./envoisms.sh 0600000000 BONNEANNEE2016");
system(url);
comptvaleur = comptvaleur + 1;
usleep(400 * 500);
} while (comptvaleur < 3); // WHILE sur le DO
return EXIT_SUCCESS;
}
Mon script bash
#!/bin/sh
numero=$1
texte=$2
gammu-smsd-inject TEXT $numero -text $texte
Syslog
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: Using FILES service
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: Configuring Gammu SMSD...
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: SHM token: 0xffffffffce023fc2 (-838713406)
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: PIN code is "xxxx"
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: CommTimeout=30, SendTimeout=30, ReceiveFrequency=0, ResetFrequency=0, HardResetFrequency=0
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: checks: CheckSecurity=1, CheckBattery=1, CheckSignal=1
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: mode: Send=1, Receive=1
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: deliveryreport = no
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: phoneid =
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: Inbox is "/var/spool/gammu/inbox/" with format "standard"
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: Outbox is "/var/spool/gammu/outbox/" with format "detail" and transmission format "7bit"
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: Sent SMS moved to "/var/spool/gammu/sent/"
Dec 31 14:41:50 MyMaison gammu-smsd[2679]: SMS with errors moved to "/var/spool/gammu/error/"
Dec 31 14:41:50 MyMaison gammu-smsd[2689]: Created POSIX RW shared memory at 0xb6f67000
Dec 31 14:41:50 MyMaison gammu-smsd[2689]: Starting phone communication...
Dec 31 14:41:50 MyMaison /etc/mysql/debian-start[2692]: Triggering myisam-recover for all MyISAM tables
Dec 31 14:41:51 MyMaison kernel: [ 42.179131] uart-pl011 20201000.uart: no DMA platform data
root@MyMaison:/var/log#
Dernière modification par marcel6566 (Le 02/01/2016, à 23:50)
Hors ligne
#2 Le 31/12/2015, à 17:49
- cqfd93
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Bonjour,
Cette question est du ressort d'un forum Debian (debian-fr ou Debian-Facile). Selon les règles du forum que tu as certainement lues, une question ne concernant pas Ubuntu ou ses dérivées peut être posée dans le Café. Sujet déplacé.
− cqfd93 −
En ligne
#3 Le 01/01/2016, à 11:15
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Salut,
Je pense que tu devrais commencer par simplifier ton approche.
Pourquoi faire un programme en C++, utilisé comme du C, avec pour seul but d'exécuter un shellscript, qui lui exécute une autre commande !?
Ensuite, peut-être que ton problème n'est pas du tout lié. Peut-être que, simplement, lorsque le script est exécuté la clé 3G ne s'est pas encore connectée au réseau...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 01/01/2016, à 17:25
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Bonjour et meilleurs vœux à tous.
Merci pour ta réponse.
En fait j'utilise le C++ car mon projet nécessite d'autres fonctions, telles que MySQL, I2C, ...
Je n'avais ici qu'extrait la partie essentielle à mon problème.
Dans la réalité, je fais appel à Gammu de nombreuses autres fois, et le résultat reste le même.
J'ai modifié ce programme, et ai mis au démarrage une tempo d'environ 5 minutes, ensuite Gammu ne fonctionne pas mieux ???
Si vous avez des pistes, elles sont le bienvenue.
Cordialement
int comptvaleur = 0;
char url[100];
usleep(500 * 5000);
do {
sprintf(url, "%s", "./envoisms.sh 0600000000 BONNEANNEE2016");
system(url);
comptvaleur = comptvaleur + 1;
usleep(400 * 500);
} while (comptvaleur < 3);
Hors ligne
#5 Le 01/01/2016, à 17:35
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
En fait j'utilise le C++ car mon projet nécessite d'autres fonctions, telles que MySQL, I2C, ...
Alors pourquoi appeler un script qui lui-même appelle gammu, plutôt que d'appeler directement gammu à partir de ton programme en C++ ?
Ou alors, encore 1000 fois mieux, pourquoi ne pas utiliser la libGammu plutôt que d'appeler la commande Gammu ?
https://wammu.eu/docs/manual/c/
J'ai [...] mis au démarrage une tempo d'environ 5 minutes, [...] Gammu ne fonctionne pas mieux
Donc j'imagine que ma supposition était mauvaise.
Pour déboquer ça, prenons une autre approche : regarde le retour de la commande gammu-smsd-inject, par exemple en redirigeant sa sortie vers un fichier...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#6 Le 01/01/2016, à 18:12
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
J'ai regardé libGammu, car au départ je voulais l'utiliser. Mais il me semble qu'il faut une version graphique avec wammu. Sur mon RPI, j'ai supprimé cette interface et tout ce passe en ligne de commande, donc avec gammu !
regarde le retour de la commande gammu-smsd-inject, par exemple en redirigeant sa sortie vers un fichier...
Super ta démarche, je ne savais pas que cela était possible.
J'ai essayé en mettant le fichier à la place du numéro de téléphone ou en utilisant le paramètre -c, mais je ne trouve pas la bonne syntaxe.
Comment faire ?
Merci
Hors ligne
#7 Le 01/01/2016, à 22:32
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
libGammu, car au départ je voulais l'utiliser. Mais il me semble qu'il faut une version graphique avec wammu
Non, aucun rapport entre la libgammu et une quelconque version graphique.
C'est une lib, ça ne te force pas à faire un logiciel graphique.
gammu lui-même, en ligne de commande, utilise libgammu.
J'ai essayé en mettant le fichier à la place du numéro de téléphone ou en utilisant le paramètre -c, mais je ne trouve pas la bonne syntaxe.
Comment faire ?
Ton script bash :
#!/bin/sh
numero=$1
texte=$2
gammu-smsd-inject TEXT $numero -text $texte >> /tmp/debug_gammu 2>&1
Dernière modification par tiramiseb (Le 01/01/2016, à 22:32)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#8 Le 02/01/2016, à 00:03
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Merci pour l'info. je cherche à installer le bon paquet pour bénéficier de libGammu.
Bien, j'ai fait le test.
Au redémarrage le fichier debug_gammu est vide.
En lançant manuellement le fichier contient les trois créations et je reçois correctement les sms sur mon portable.
# cat debug_gammu
gammu-smsd-inject[2852]: Created outbox message OUTC20160001_235630_00_06xxxxxxx_sms0.smsbackup
Written message with ID /var/spool/gammu/outbox/OUTC20160001_235630_00_06xxxxxxx_sms0.smsbackup
gammu-smsd-inject[2857]: Created outbox message OUTC20160001_235631_00_06xxxxxxx_sms0.smsbackup
Written message with ID /var/spool/gammu/outbox/OUTC20160001_235631_00_06xxxxxxx_sms0.smsbackup
gammu-smsd-inject[2862]: Created outbox message OUTC20160001_235632_00_06xxxxxxx_sms0.smsbackup
Written message with ID /var/spool/gammu/outbox/OUTC20160001_235632_00_06xxxxxxx_sms0.smsbackup
Bizarre ???
Dernière modification par marcel6566 (Le 02/01/2016, à 00:04)
Hors ligne
#9 Le 02/01/2016, à 00:08
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
* Au démarrage, tu lances ça en tant que quel utilisateur ?
* Le démon Gammu est-il lancé avant l'exécution de la commande ?
* Le répertoire /var/spool/gammu est-il bien accessible au moment où la commande s'exécute ?
* Comment as-tu fait pour que ton programme s'exécute au démarrage ?
Dernière modification par tiramiseb (Le 02/01/2016, à 00:09)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#10 Le 02/01/2016, à 01:15
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Au démarrage, tu lances ça en tant que quel utilisateur ?
Je pense que c'est root, mais je ne me connecte pas
Le démon Gammu est-il lancé avant l'exécution de la commande ?
BRAVO, je n'ai pas vu S03demarrer et S04gammu-smsd.
Je vais placer S03demarrer en S20
Le répertoire /var/spool/gammu est-il bien accessible au moment où la commande s'exécute ?
Je ne sais pas comment le savoir ???
Ce répertoire est en root:root avec les droits 755
Comment as-tu fait pour que ton programme s'exécute au démarrage ?
J'ai créé un script qui pointe sur mon programme. Il est dans /etc/init.d avec les droits 755 en root:root
Puis j'utilise update-rc mon_script defaults
Hors ligne
#11 Le 02/01/2016, à 01:36
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
J'ai créé un script qui pointe sur mon programme. Il est dans /etc/init.d avec les droits 755 en root:root
L'idéal serait que ton script attende l'argument "start", "stop" ou "restart", comme un vrai script de démarrage. Sinon il risque d'exécuter ces commandes également à l'extinction (et puis de toute manière ça ne serait pas joli ).
Mis à part ça, en effet je pense aussi que ça tourne en root si tu n'as pas fait + complexe que ça.
Je vais placer S03demarrer en S20
Ça donne quoi ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#12 Le 02/01/2016, à 01:48
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Ça donne quoi ?
Je ne parviens pas à changer l'ordre de démarrage
update-rc.d -f dem remove
OK
update-rc.d dem defaults 20 1
il replace en 3 1
J'ai supprimé rem et recréé un autre : idem il le place en 3 ???
J'ai essayé de placer gammu-smsd en 3 1 et ensuite dem en 20 1 mais pas de modif.
Je vais faire un ON/OFF de RPI
Hors ligne
#13 Le 02/01/2016, à 02:02
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
update-rc.d dem defaults 20 1
Conflit, là.
Soit tu lui dis de faire le truc par défaut ("defaults"), soit tu lui dis de mettre en 20.
Derrière "defaults", tous les arguments sont ignorés.
C'est le header de ton script d'init qu'il faut modifier, dans la section "BEGIN INIT INFO".
Si tu ne sais pas comment former ce machin, alors fais carrément le lien symbolique à la main dans /etc/rc2.d...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#14 Le 02/01/2016, à 02:32
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Je suis passé par les liens
ln –s /etc/init.d/dem.sh /etc/rc0.d/K01dem.sh
ln –s /etc/init.d/dem.sh /etc/rc1.d/K01dem.sh
ln –s /etc/init.d/dem.sh /etc/rc2.d/S20dem.sh
ln –s /etc/init.d/dem.sh /etc/rc3.d/S20dem.sh
ln –s /etc/init.d/dem.sh /etc/rc4.d/S20dem.sh
ln –s /etc/init.d/dem.sh /etc/rc5.d/S20dem.sh
ln –s /etc/init.d/dem.sh /etc/rc6.d/K01dem.sh
#!/bin/bash
### BEGIN INIT INFO
# Provides: dom
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Démarre prog
# Description: Lance le prog principal
### END INIT INFO
/SCRIPTS/prog
caee "$1" in
start)
;;
stop)
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0
Le démarrage ne se fait plus
j'en ai assez pour ce soir
Merci pour ton aide
Cordialement
Hors ligne
#15 Le 02/01/2016, à 10:43
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Ta commande il faut la mettre dans le bloc "start".
Le démarrage ne se fait plus
Ça veut dire quoi ? Le démarrage de quoi ? De la machine dans sa totalité ?
Ça bloque où ?
Dernière modification par tiramiseb (Le 02/01/2016, à 10:43)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#16 Le 02/01/2016, à 13:56
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Bonjour
Des progrès !
gammu-smsd (S04) se lance avant dem (S05).
Le script dem lance bien prog au démarrage. Mais pas de fichier debug_gammu créé au démarrage du prog ni pendant l'exécution du prog en fonction des différentes interactions.
Apres avoir kill le prog, je le lance manuellement ./prog, et la le fichier debug_gammu se crée dès le début du prog et pendant l'exécution du prog en fonction des différentes interactions.
Hors ligne
#17 Le 02/01/2016, à 14:03
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Là je sèche...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#18 Le 02/01/2016, à 14:04
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Remarque peut être intéressante.
Je boote mon RPI, le prog est lancé et mes interactions fonctionnement bien. (toujours pas de sms)
Depuis le console sans arrêter le prog, je lance via le script un sms manuel. Il ne passe pas
Je regarde le fonctionnement de gammu. Il est en Ss ???
# ps aux | grep gammu
gammu 2674 0.4 0.7 20672 3276 ? Ss 13:47 0:04 /usr/bin/gammu-smsd --daemon --user gammu --pid /var/run/gammu-smsd.pid
root 9846 0.0 0.4 3568 1916 pts/1 S+ 14:02 0:00 grep gammu
Hors ligne
#19 Le 02/01/2016, à 14:06
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Il est en Ss ???
Sleeping, c'est l'état normal d'un processus...
Mais ça ne répond pas au problème...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#20 Le 02/01/2016, à 14:08
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
ERREUR de ma part
Je boote mon RPI, le prog est lancé et mes interactions fonctionnement bien. (toujours pas de sms)
Depuis le console sans arrêter le prog, je lance via le script un sms manuel. Il ne passe pas le sms passe
Je regarde le fonctionnement de gammu. Il est en Ss ???
Hors ligne
#21 Le 02/01/2016, à 14:46
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
S = sleeping, c'est l'état normal d'un processus.
s = session leader : normal, c'est un démon.
Depuis le console sans arrêter le prog, je lance via le script un sms manuel. Il ne passe pas le sms passe
Ton programme semble avoir un problème lors de son démarrage.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#22 Le 02/01/2016, à 14:52
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Je regarde des users et groups
cat passwd
gammu:x:109:112::/nonexistent:/bin/false
cat group
gammu:x:112:
ssl-cert:x:109:
Hors ligne
#23 Le 02/01/2016, à 14:55
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Tu commences à t'éparpiller, à vérifier n'importe quoi, à partir dans tous les sens...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#24 Le 02/01/2016, à 14:58
- marcel6566
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Il reste pourtant très basic !!!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <glib.h>
#include <glib/gprintf.h>
// #include <gammu.h>
int main(int argc, char *argv[])
{
int comptvaleur = 0;
char url[100];
do {
sprintf(url, "%s", "./envoisms.sh 06XXXXXXXX BONNEANNEE2016");
system(url);
comptvaleur = comptvaleur + 1;
usleep(400 * 2500);
} while (comptvaleur < 3); // WHILE sur le DO
return EXIT_SUCCESS;
}
Hors ligne
#25 Le 02/01/2016, à 15:14
- tiramiseb
Re : [RESOLU] GAMMU et DEMMARRAGE de l'OS !
Par contre tu n'as pas montré comment tu t'assures que la commande est exécutée dans le bon répertoire... Aucun "cd" dans ton script de démarrage, un chemin relatif dans ton code en C++......
En fait, j'ai l'impression que tu cumules les mauvaises pratiques...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne