Est-ce je réponds à ta question ?
Non. Tu es en train de m'indiquer où sont tes programmes, mais tu ne m'as toujours pas dit comment ton programme en C++ se place, lorsque tu le lances, dans /SCRIPTS. Quand on lance une commande dans un script d'init, le répertoire courant est la racine, /.
Donc, lorsque dans ton programme tu exécutes « ./envoisms.sh [...] » ça va chercher le fichier envoisms.sh à la racine. Il faut soit faire un "cd" dans ton script d'init, soit l'équivalent dans ton programme en C++.
Mais je persiste à penser que ton approche est capillotractée.
Tu pourrais avoir la démarche suivante :
programme en C++ utilisant libgammu → envoi de sms
... mais tu as choisi de faire :
programme en C++ → exécution d'un script shell → appel du programme gammu-smsd-inject → injection de données dans la file d'attente du démon gammu → lecture de la file d'attente par le démon gammu → envoi de sms