exec() et script python ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : exec() et script python ?

Re: exec() et script python ?

par @rthur » 13 juil. 2016, 22:33

(C'était une question posée il y a 9 ans ! J'espère qu'il est passé à autre chose depuis :-D )

Re: exec() et script python ?

par Matthis974jump » 13 juil. 2016, 21:52

Voila ton problème :D :D :

Pour le test fait un

Code : Tout sélectionner

sudo su www-data
et essaie de faire une commande de type sudo et tu vera se qui se passe quand tu execute ta commende !!!!!

Tu vas te rendre compte ( je pense ) de ton erreur !!!!!!!!!!!!

:P 8-) 8-)

par kunzy » 18 juil. 2007, 17:08

C'est déjà fait ... :(

par Sékiltoyai » 18 juil. 2007, 17:06

Essaye avec d'autres fonctions comme shell_exec() si ca ne marche pas...

par Sékiltoyai » 18 juil. 2007, 16:52

Vous avez blindé :D

par kunzy » 18 juil. 2007, 16:52

Alors pour être sur de nous, on a mis que le fichier appartenait à www-data et au groupe dialout. On a aussi mis les droit à 7777.

par Sékiltoyai » 18 juil. 2007, 16:34

là le soucis c'est que : on lance le script à distance via un navigateur, donc c'est bien l'utilisateur www-data qui le lance non ?
Oui
Donc il doit juste faire partie du groupe 'dialout' ?
Surement.

C'est quoi les droits (chown, chgrp, et chmod) du fichier ?

par kunzy » 18 juil. 2007, 15:47

:lol: :lol:

Ah oui comme un con j'avais fait un copié / collé.
Voilà un grand progrès : on a une erreur

serial.serialutil.SerialException: Could not open port: [Errno 13] Permission denied: '/dev/ttyS0'

là le soucis c'est que : on lance le script à distance via un navigateur, donc c'est bien l'utilisateur www-data qui le lance non ? Donc il doit juste faire partie du groupe 'dialout' ?

Control:/opt# adduser www-data dialout
L'utilisateur « www-data » est déjà membre du groupe « dialout ».

Et ça marche pourtant pas ...

par Invité » 18 juil. 2007, 15:45

Ah oui comme un con j'avais fait un copié / collé.
Voilà un grand progrès : on a une erreur

serial.serialutil.SerialException: Could not open port: [Errno 13] Permission denied: '/dev/ttyS0'

là le soucis c'est que : on lance le script à distance via un navigateur, donc c'est bien l'utilisateur www-data qui le lance non ? Donc il doit juste faire partie du groupe 'dialout' ?

Control:/opt# adduser www-data dialout
L'utilisateur « www-data » est déjà membre du groupe « dialout ».

Et ça marche pourtant pas ...

par Sékiltoyai » 18 juil. 2007, 15:33

Merde, je me suis gourré dans la syntaxe de la commande, remplace par :
echo exec("python script.py 2>&1");
Sinon, affiche les erreurs php, si ce n'est pas déjà fait dans ton php.ini, mets error_reporting à E_ALL et display_errors à On.

J'espère qu'avec ca on va pouvoir trouver le Saint Graal, en (Monty) python... ==>[]

par Invité » 18 juil. 2007, 15:02

Alors j'ai pas de messages d'erreur (page blanche...) mais toujours pas de résultat. Le problème reste le même : dans le shell, la commande fonctionne, mais passée dans le exec(), pas d'erreur, mais pas de résultat : le script est quitté avant la fin, surement quand il rencontre certaines fonctions.

Par exemple, on arrive à écrire ou lire dans un fichier, mais ouvrir un port série ou simplement faire un time.sleep(5), ca ne va pas plus loin.

par Sékiltoyai » 18 juil. 2007, 14:40

Essaye
echo exec("python script.py 2->&1");
pour afficher les erreurs.

exec() et script python ?

par kunzy » 18 juil. 2007, 12:09

Bonjour !
Je rencontre un léger problème dans un script php :
le but est de pouvoir sous certaines conditions (après requètes sql, if(machin > ...) ) lancer un script python.
Donc bien naïvement nous avons tenté des choses du genre exec("python script.py > /dev/null").
Le problème est que le script est bien lancé, mais on en sort dès qu'on rencontre certaines fonctions python, du genre communication avec le port série ou time.sleep().
Pour info, ca tourne sur un serveur apache 2 et l'utilisateur www-data a bien les droits pour accéder au port série.