2 votes

Les commandes de ligne de commande Windows ne font rien par intermittence

UPDATE

Je viens de parler aux deux développeurs en question et ils ont tous les deux dit qu'ils sont en train de courir. Win XP 2002 SP3 . Cela pourrait bien être un problème pour. Merde, c'est vieux.


Je ne suis pas sûr de la meilleure façon de décrire ce problème, mais je vais le faire.

La plupart des développeurs de mon équipe utilisent des boîtes Windows. Quelques-uns d'entre eux rencontrent le problème suivant...

Lorsque vous exécutez des commandes à partir de l'invite de commande, rien ne se passe. Par rien, j'entends que l'invite de commande revient immédiatement, sans erreur, sans rien. Cela ne se produit pas à chaque fois, mais en moyenne, il faut exécuter la même commande environ 5 fois avant qu'elle ne " colle " et ne s'exécute.

Ce problème est aggravé par le fait que si la commande exécutée appelle à son tour d'autres commandes, celles-ci peuvent également échouer.

L'effet net de ceci est un temps très frustrant en essayant d'exécuter des choses comme les tests de Cucumber à partir de la ligne de commande.

Plus précisément, ces personnes ont essayé d'exécuter des tests cucumber, mais j'ai été témoin de cela en essayant d'ajouter une nouvelle boîte via Vagrant ce matin. Ces deux choses sont basées sur Ruby, il y a donc peut-être quelque chose à faire.

Bref, mes questions sont les suivantes :

Compte tenu de ce qui précède, avez-vous été confronté au fait que la ligne de commande Windows n'exécute pas les commandes de manière aléatoire et, si oui, comment avez-vous résolu le problème ?

Y a-t-il des journaux que je peux consulter pour voir pourquoi les commandes en ligne de commande échouent ?

1voto

jackrabbit Points 2990

Cela peut être délicat à diagnostiquer.

Y a-t-il des journaux que je peux consulter pour voir pourquoi les commandes en ligne de commande échouent ?

La réponse courte est non. L'invite de commande lance simplement le programme et affiche une erreur s'il ne parvient pas à se charger, mais s'il se charge, c'est alors au programme individuel d'afficher ce dont il a besoin. Le fait qu'un programme démarre et se ferme sans rien faire ou sans afficher d'informations ne constitue pas une erreur.

Vous pouvez cependant utiliser Process Monitor (de Sysinternals) qui vous montrera ce qui se passe (c'est-à-dire chaque fichier au fur et à mesure qu'il est accédé et les entrées du registre au fur et à mesure qu'elles sont lues). Si vous comparez ce qui se passe lorsque le programme se comporte correctement avec ce qui se passe lorsqu'il échoue, cela peut vous donner un indice de l'endroit où le programme se trompe.

Puisque ce sont uniquement les programmes basés sur Ruby qui présentent ce problème, la prochaine étape serait d'écrire/obtenir un programme ruby très simple (peut-être quelque chose qui affiche juste un message) que vous pouvez utiliser pour tester l'environnement ruby.

Il est possible, si vous exécutez rapidement de nombreux programmes ruby, que l'environnement soit chargé et déchargé rapidement et qu'il échoue si vous avez tenté de lancer un processus trop rapidement après avoir terminé le précédent.

Mais je soupçonne que cela fonctionnera aussi, ce qui vous obligerait à regarder les programmes que vous essayez d'exécuter.

Si vous avez la source (et puisque vous mentionnez les développeurs, je suppose que vous l'avez), alors vous devez vérifier votre source pour le code qui pourrait éventuellement échouer mais que vous supposez fonctionner, c'est-à-dire où vous ne vérifiez pas les succès. Je ne connais pas ruby, mais je suppose que si le programme appelle d'autres programmes, il renverra un statut d'erreur si l'appel échoue et cette valeur de statut ne peut pas être vérifiée ou enregistrée.

Mais la meilleure méthode consiste généralement à enregistrer une grande quantité d'informations que vous pouvez ensuite utiliser pour suivre le déroulement du programme et déterminer pourquoi il fonctionne parfois et pas toujours.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X