gaetan.cambier Posté(e) le 15 novembre 2014 Partager Posté(e) le 15 novembre 2014 bon dernière tentative si on veut bien : c'est à la meme place : original : def check(self): with open(os.devnull, 'w') as devnull: error = subprocess.check_output([self.start_stop_status, 'check'], stderr=subprocess.STDOUT) return error modification (dernière ligne) def check(self): with open(os.devnull, 'w') as devnull: error = subprocess.check_output([self.start_stop_status, 'check'], stderr=subprocess.STDOUT) return error.decode('string_escape') 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 15 novembre 2014 Partager Posté(e) le 15 novembre 2014 notre testeur est partis dormir probablement, je vais faire de meme 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
devildant Posté(e) le 15 novembre 2014 Partager Posté(e) le 15 novembre 2014 Bonne nuit a tous alors 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CHILLY996 Posté(e) le 16 novembre 2014 Partager Posté(e) le 16 novembre 2014 Bonjour, Oui j'étais parti voir le bal des petits lits blancs. Je viens de faire l'essai en ajoutant toujours import re, il reste toujours la même erreur. Voilà pour le retour d'info. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 16 novembre 2014 Partager Posté(e) le 16 novembre 2014 (modifié) import re ? j'avais laissé un autre message hier avec juste la modif de : return error.decode('string_escape') ceci a été tester ? après çà, je donne ma langue au chat de toute façon Modifié le 16 novembre 2014 par Gaetan Cambier 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CHILLY996 Posté(e) le 16 novembre 2014 Partager Posté(e) le 16 novembre 2014 (modifié) A chaque fois que j'ai fait une modification, j'ai laissé la ligne import re à la fin des imports comme dans le message ajouter cette ligne après les ligne "import": import re Donc à chaque test que j'ai fait, j'ai laissé cette ligne import re. Il ne fallait pas ? Donc quand j'ai testé "return error.decode('string_escape')", il y avait toujours la ligne import re. Désolé si j'ai mal compris. Modifié le 16 novembre 2014 par CHILLY996 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 16 novembre 2014 Partager Posté(e) le 16 novembre 2014 Non pas grave, pas utile mais qu'elle soit la ou pas ne changera rien. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 (modifié) Ou alors la chaine de caractère contient des caractères particulier, dans le lien que j'ai donnée plus haut on voit cette chaine de caractère "←7←[r←[999;999H←[6n" Si ca peut être utile, l'affichage de cette chaîne de caractères est le résultat de la commande "resize" qui à été ajoutée dans "/etc/profile" depuis DSM 5.1. Modifié le 17 novembre 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 (modifié) Une info est toujours utile. maintenant, soit on supprime le resize, mais c'est un peu bourrin soit on trouve comment contourner ce problème Modifié le 17 novembre 2014 par Gaetan Cambier 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 On peut me faire un récap du problème ? Il y a un message d'erreur alors que tout va bien c'est ça ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 donc, à l'écriture du fichier, dans tous les cas, la chaine suivante est ajoutée au retour de l'erreur : ←7←[r←[999;999H←[6n on se trouve donc apparemment dans le fichier direct.py à la ligne suivante (78): error = subprocess.check_output([self.start_stop_status, 'check'], stderr=subprocess.STDOUT) selon cool raoul, ca proviendrai de l'ajout de la commande resize dans le /etc.profile j'aurait bien tester quelque truc avec cette fonction, mais en 5.0, la commande est semble inconnue 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Si c'est le cas n'importe quelle commande lancée de cette manière devrait être impactée, y compris : import subprocess subprocess.check_output(['exit 0'], stderr=subprocess.STDOUT) Quelqu'un peut tester ça sur son NAS en lançant un Python avec /usr/local/python/bin/python ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Précision : quelqu'un en dsm 5.1 pour tester 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 (modifié) Si c'est le cas n'importe quelle commande lancée de cette manière devrait être impactée, y compris : import subprocess subprocess.check_output(['exit 0'], stderr=subprocess.STDOUT)Quelqu'un peut tester ça sur son NAS en lançant un Python avec /usr/local/python/bin/python ? $ /usr/local/bin/python foo.py Traceback (most recent call last): File "foo.py", line 3, in <module> subprocess.check_output(['exit 0'], stderr=subprocess.STDOUT) File "/usr/lib/python2.7/subprocess.py", line 566, in check_output process = Popen(stdout=PIPE, *popenargs, **kwargs) File "/usr/lib/python2.7/subprocess.py", line 710, in __init__ errread, errwrite) File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory **EDIT**Meme erreur avec "/usr/local/python/bin/python" **EDIT#2** plus d'erreur en remplacant "exit 0" par "ls" et que le "resize" de /etc/profile soit commenté ou pas ne change rien Modifié le 17 novembre 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 (modifié) Ha ça doit être ['exit', '0'] et non ['exit 0']. Edit: Donc ça fonctionne, pas de caractères bizarres dans l'output? Modifié le 17 novembre 2014 par Diaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 (modifié) Ha ça doit être ['exit', '0'] et non ['exit 0']. Meme erreur: je pense que subprocess.check_output essaie de forker directement la commande ("exit" ici) et pas un sous-shell ("sh -c 'exit 0"") et donc il cherche un binaire "exit" dans le PATH et ne le trouve pas. Edit: Donc ça fonctionne, pas de caractères bizarres dans l'output? Avec "ls" je n'en ai pas, mais c'est pas si étonnant vu qu’apparemment si il n'y a pas d'exécution de shell en login (sh -i). A noter que le stdout de "ls" ne s'affiche pas non plus (suis pas un spécialiste de python pour expliquer) En utilisant (pour forcer l'exécution des profiles): subprocess.check_output(['sh', '-l', '-c', 'pwd'], stderr=subprocess.STDOUT) Je n'ai toujours pas de caractères de contrôle ni d'erreur, par contre c'est plus long lorsque le "resize" est décommenté. Modifié le 17 novembre 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Ca doit être du au fait qu'on lance le script via un shell en passant par le start-stop-status de HAProxy. Si tu édites le start stop status de HAProxy pour mettre un "ls" à la place d'un appel à haproxy pour faire un check de config tu auras aussi les caractères bizares. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Ca doit être du au fait qu'on lance le script via un shell en passant par le start-stop-status de HAProxy. Si tu édites le start stop status de HAProxy pour mettre un "ls" à la place d'un appel à haproxy pour faire un check de config tu auras aussi les caractères bizares. Je n'ai pas haproxy installé. Mais en attendant mieux, ne peut-on pas suggérer à ceux qui rencontrent le problème de simplement commenter le "resize" de "/etc/profile"? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
devildant Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 (modifié) Si ca peut être utile, l'affichage de cette chaîne de caractères est le résultat de la commande "resize" qui à été ajoutée dans "/etc/profile" depuis DSM 5.1. Pour cette solution j'y est pensé mais PS1 ne contient pas la chaine 7[.... (Ps je n'ai pas encore fait la maj) Bn : je viens de voir ton commentaire dans le sujet plink, il y a donc une variable resize dans le fichier profile ^^ Cette customisation de prompt est tout de même problématique Modifié le 17 novembre 2014 par devildant 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Condorman Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 commenter le "resize" de "/etc/profile"? J'ai donc fait cette modification. Je suis en DSM 5.1 A l'enregistrement de la configuration de HaProxy, il n'y a plus le message d'erreur. Donc bravo et merci à tous. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Pour cette solution j'y est pensé mais PS1 ne contient pas la chaine 7[.... (Ps je n'ai pas encore fait la maj) Pourquoi parles-tu de PS1? Sur mon NAS, après login, je ne trouve pas de caracteres de controle dans PS1: dans le "/etc/profile" par défaut c'est simplement "`hostname`> " qui est mis dans cette variable) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
tonymans72 Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Salut Diaoul, Une version pour les nouveaux NAS DSx15+ est prévu ? Merci d'avance 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
devildant Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Pourquoi parles-tu de PS1? Sur mon NAS, après login, je ne trouve pas de caracteres de controle dans PS1: dans le "/etc/profile" par défaut c'est simplement "`hostname`> " qui est mis dans cette variable) Je pensais simplement que le resize avais été set directement dans la variable PS1 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diaoul Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 (modifié) Bon ben c'est réglé, il faut juste lancer la commande ici : https://github.com/SynoCommunity/spksrc/blob/develop/spk/haproxy/src/dsm-control.sh#L25 Depuis python directement ici : https://github.com/SynoCommunity/spksrc/blob/develop/spk/haproxy/src/app/application/direct.py#L79 C'est pas terrible de dupliquer le code donc à la limite ce serait mieux de faire un check_call avec un block try/except : https://docs.python.org/2/library/subprocess.html#subprocess.check_call Si quelqu'un peut fixer ça et faire une PR je veux bien, je n'aurai pas le temps avant plusieurs jours. Modifié le 17 novembre 2014 par Diaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 17 novembre 2014 Partager Posté(e) le 17 novembre 2014 Peux toujours y regarder 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.