Il a dû vous arriver de vouloir exécuter le script.sh que vous êtes en train de débuguer directement connecté en SSH sur l’OS qui supporte Jeedom.
Le problème, c’est qu’il n’est pas possible de se connecter en tant que www-data, et c’est bien avec cet utilisateur que Jeedom exécute vos scripts.
Et bien il suffit d’affecter temporairement un shell à l’utilisateur www-data pour pouvoir tester votre script.
Lancez une session SSH sur la machine qui héberge Jeedom, puis connectez-vous en root (en fonction de votre distribution, la commande peut différer) :
su root (Debian 9)
ou
sudo su - (Ubuntu)
sudo su (Raspbian)
su (Synology)
par exemple. Entrez le mot de passe root.
Puis tapez la commande :
su -l www-data -s /bin/bash
et ensuite, rendez-vous dans le répertoire des scripts :
cd /var/www/html/plugins/script/data
puis :
./monscript.sh
et voilà, vous voyez maintenant le retour de votre script et pouvez le débuguer !
Oui, c’est sans doute exact, et tous les utilisateurs ont donc le droit d’exécuter ce script, mais si tu es connecté en tant que « olive » ou « root » sur ta box jeedom, tu ne pourras pas tester ton script dans les conditions réelles dans lesquelles Jeedom l’exécute, c’est à dire en tant qu’utilisateur www-data.
Cette astuce permet de faire ça et donc de voir en direct comment il se comporte plutôt que de passer par l’interface script de Jeedom.
Merci pour les informations concernant l’usage de www-data
Je suis confronté à une « problématique » j’ai un script .sh qui fais appels a des command line d’une application (twinkle) mon script s’éxécute bien en pi ou root pas moyen en www-data
Après analyse la raison est xhost:
www-data@raspberrypi:~/html/plugins/script/data$ ./call.sh
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display
J’ai bien donner les droits xhost suivant:
root@raspberrypi:/var/www/html/plugins/script/data# xhost
access control disabled, clients can connect from any host
LOCAL:
SI:localuser:www-data
SI:localuser:root
SI:localuser:pi