Page 1 sur 1

executer une commande xset [résolu]

Posté : 07 déc. 2013, 13:50
par nano54120
Bonjour à tous, je ne trouve pas de solution à ce problème : je souhaite développer une "bombe airsoft" ! Rien de bien sérieux , juste pour du jeu de rôle dans tout ça ! J'utilise un EEEPC 700 sous Lubuntu. J'ai développé une interface sous javascript assez sympa. Elle affiche un compteur qui doit enclencher un voyant à la fin du décompte. Ce petit portable n'a pas de port parallèle pour piloter un transistor alors j'ai eu l'idée d'utiliser un des voyants d'état d'un clavier USB démonté pour la cause. Il faut donc arriver à piloter la led de la platine. Impossible en javascript alors j'ai installé un serveur PHP avec LAMP. Le lance ma page web en localhost. Ca fonctionne. Ensuite je souhaite lancer une page php en fonction de l'état de la led que je souhaite avoir :
<?php
$output = shell_exec('/usr/bin/xset led named "Scroll Lock"');
?>
Ca ne marche pas ! La ligne de commande sous un terminal fonctionne parfaitement. L'avantage de xset c'est qu'il peut fonctionner sans être root. Je n'ai donc pas à régler les problèmes de droit user, c'est déjà ça. J'ai essayé à la place de shell_exec , exec, system etc ... mais toujours rien. J'ai aussi ajouté 2>&1 au bout de la ligne et rien ! La valeur d'$output est vide.

Une idée ?

Re: executer une commande xset

Posté : 07 déc. 2013, 18:28
par sirakawa
Mystère...
Chez moi Fedora il faut mettre en ligne de commande
xset -led named "Scroll Lock" led off
mais:
xset led named "Scroll Lock" led on
ou xset -led ou xset led
mais je suppose que tu le savais

J'ai créé un fichier batch qui fonctionne, mais mon exec ou passthru ne donne rien

Re: executer une commande xset

Posté : 07 déc. 2013, 21:10
par nano54120
Bjr sirakawa

Sur Ubuntu pas besoin d'ajouter le "led on" ou "led off". En batch ça marche aussi. Bon je vois que sur un autre poste ou distrib ça bloque en php. Déjà ce n'est pas du à ma distrib. Je me demande si il n'y a pas une option à activer dans l'ini du php.

Re: executer une commande xset

Posté : 07 déc. 2013, 22:19
par nano54120
TROUVE !!!!

Il faut ajouter -display :0.0 sur ma ligne de commande :
<?php
$output = shell_exec('/usr/bin/xset led -display :0.0 named "Scroll Lock"');
?>
Comme un idiot je n'ai pas été voir le fichier error.log de php. J'avais l'erreur
/usr/bin/xset: unable to open display ""

Après recherche de cette erreur sur le net j'ai trouvé la solution du -display

Si ça peut aider quelqu'un !

Re: executer une commande xset [résolu]

Posté : 08 déc. 2013, 09:39
par sirakawa
oui, mais ta solution est limitée à machines des Unix like; si tu as un joueur sous Windaube???