Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1137 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Impossible de lancer une commande systeme : segmentation fault

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Impossible de lancer une commande systeme : segmentation fault

n°219644
twinsen200​2
Posté le 24-09-2002 à 18:37:32  profilanswer
 

Bonjour
Sous Solaris, un script perl genere un fichier texte
et lance une commande systeme avec system("maCommande 1> log.txt 2>erreur.txt" )
La commande plante avec un segmentation fault visible dans erreur.txt
 
Que faire ? y a t il moyen d optimiser la memoire ou de vider la memoire avant de lancer le script ?
 
une chose, quand je fais system("commande1;commande2;maCommande 1> log.txt 2>erreur.txt" )
les commandes commande1 et commande2 fonctionnent mais pas
maCommande
 
je peux lancer maCommande du shell (telnet avec les memes environnements de lancement depuis system())...
 
 
une idee ?
Merci
 
 
 

mood
Publicité
Posté le 24-09-2002 à 18:37:32  profilanswer
 

n°219759
Aricoh
gentil mais fo po pousser
Posté le 25-09-2002 à 08:52:50  profilanswer
 

c'est l'matin, j'ai po bu ma cafetière, j'ai po les zioux en face des treus (ou bien l'inverse  :D) mais je vois déjà 2 soluces pour ton pb :
 
1) passe par eval pour tester l'éventuel message d'erreur que retournerait eval si problème, exemple :
 

Code :
  1. eval { system("maCommande 1> log.txt 2>erreur.txt" ); }
  2. if ($@) {
  3.     print "oula, ca merde grave : $@";
  4. } else {
  5.     poursuite du traitement
  6. }


 
2) autre possibilité :

Code :
  1. $toto = `system("maCommande" )`;


 
arrange-toi pour que ta commande system ne retourne qu'une seule sortie des données et dans ce cas, $toto récupère tout ce que retourne la commande system et tu n'a plus qu'à imprimer le contenu de $toto dans ton fichier log
 
Ceci étant dit, le mieux pour le moment est de passer par la solution 1 car peut être qu'eval retournera un message d'erreur plus précis qu'un segmentation fault
 
tu veux pas nous dire exactement ce que tu fais avec ta commande system ? on gagnerait pitet du temps aussi


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°219829
twinsen200​2
Posté le 25-09-2002 à 11:06:05  profilanswer
 

Merci Aricoh de la celerite de ta reponse
 
Alors j ai teste les deux possibilites :
 
1/ dans le premier cas, on n est jamais dans le cas print "oula, ca merde grave : $@"; !!!
delirant
2/ dans le deuxieme cas, le code retour de system() vaut 35584 (qui n est pas un code reference pour la commande)
 
la commande en question est une application de deploiement qui se lance tres bien en dehors du system() (avec les memes parametres)
 
 
 

n°219831
Aricoh
gentil mais fo po pousser
Posté le 25-09-2002 à 11:15:24  profilanswer
 

un truc que tu pourrais essayer auquel je viens de penser à l'instant :
 
étant sous Sun, tu peux donc faire un petit script shell ? dans ce cas, peux-tu essayer ta commande dans un script shell et voir si en lançant le script, ça marche sans erreur ?
 
si oui, dans ce cas, ton script perl exécute (system) le script shell
 
c'est pas le top mais bon, peut être que comme ça ...


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°219998
circeedeva​lette
Posté le 25-09-2002 à 15:14:18  profilanswer
 

twinsen2002 a écrit a écrit :

Bonjour
Sous Solaris, un script perl genere un fichier texte
et lance une commande systeme avec system("maCommande 1> log.txt 2>erreur.txt" )
La commande plante avec un segmentation fault visible dans erreur.txt
 
Que faire ? y a t il moyen d optimiser la memoire ou de vider la memoire avant de lancer le script ?
 
une chose, quand je fais system("commande1;commande2;maCommande 1> log.txt 2>erreur.txt" )
les commandes commande1 et commande2 fonctionnent mais pas
maCommande
 
je peux lancer maCommande du shell (telnet avec les memes environnements de lancement depuis system())...
 
 
une idee ?
Merci
 
 
 
 




 
salut  
pour lancer une commande systeme je procede de la facon suivante :  
 

Citation :


$CMD = "maCommande 1> log.txt 2>erreur.txt";
system($CMD);

 
 
pour moi ca marche a tous les coups

n°221203
twinsen200​2
Posté le 27-09-2002 à 11:06:32  profilanswer
 

salut a tous
 
Aricoh : je viens de faire le test avec un shell, meme symtpome :(
circeedevalette : j utilise la meme syntaxe que toi
 
 
y a  t il un moyen de voir le nb de fichiers ouverts, la memoire libre (ulimit) ...

n°221843
twinsen200​2
Posté le 30-09-2002 à 16:22:08  profilanswer
 

Bonjour
 
La commande a lancer qui fait tout planter
est un shell qui lance en fait une commande java
 
qu est ce qui peut bien faire planter un java en segmentation fault?

n°222132
Aricoh
gentil mais fo po pousser
Posté le 01-10-2002 à 08:04:44  profilanswer
 

Ben écoute, sorry mais sur ce coup-là, je sèche complètement !
 
- tu tapes ta commande en mode console, ça marche
- tu écris la commande dans un script shell que tu lances en mode console, ça marche
- tu lances ta commande dans un prog perl, ça merde
- tu lances le script shell dans un prog perl, ça merde
 
Je suppose que la JVM est correctement configurée sur ta bécane ? J'pense que oui sinon t'arriverais pas à tes fins en lançant la commande en manuel


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Impossible de lancer une commande systeme : segmentation fault

 

Sujets relatifs
[rebol] comment lancer une application exterieure??rmi registry; l'arreter depuis la ligne de commande!?
[C] curses :Impossible de l'utiliser...scanf pdt un printf d'1 threadCommande FTP
Systeme d upload de fichier ds une administrationCherche un vieux scripts de calcul Pi [mission impossible]
Variable système et WSH...Existe-il une commande Dos pour comparer 2 fichiers ?
commande DIR sous NT2000système multilangue pour site web munis de plusieurs modules
Plus de sujets relatifs à : Impossible de lancer une commande systeme : segmentation fault


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR