J'ai un script DCL sur VMS qui appelle un script Perl. Y at-il une commande VMS/DCL que je peux utiliser qui me dira chaque handle de fichier ouvert par le script perl?fichiers ouverts par un processus sur VMS
Répondre
Définir la valeur par défaut sur le disque à partir duquel l'application s'exécute (ou vous devrez peut-être essayer chaque disque successivement s'il s'agit d'une application vraiment grande ou distribuée). Ensuite, la commande est
dispositif show/fichiers/nosystem
Si vous êtes sur une version plus récente de VMS et les listes sont trop longues, vous pouvez diriger avec une recherche en faisant ceci:
pipe show périphérique/fichiers/nosystem | recherche sys $ input (nom du script perl)
Jason, j'ai besoin de plus de précisions pour a). Voulez-vous dire que vous voulez exécuter votre script perl dans un fichier de commandes et que le fichier de commandes surveille les fichiers auxquels le script perl accède? Ou autre chose?
Je pense que je peux laisser de côté le script DCL pour éviter toute confusion. Disons simplement que je veux exécuter un script perl xyz.pl à partir de la ligne de commande. À la fin de xyz.pl, je voudrais un rapport de quels fichiers il a ouvert. La commande que vous avez fournie ne s'exécute qu'à un instant donné. Et il doit être exécuté séparément du script Perl. Exécuter cette commande plusieurs fois ne sera pas utile non plus car je pourrais manquer un fichier qui a été ouvert et fermé entre ces multiples exécutions. – Jason
Voici un moyen (pas forcément le meilleur) d'atteindre mon objectif sous Linux: strace -e open perl test.pl 2> & 1 | grep O_APPEND. Cela me dira chaque fichier que test.pl a ouvert en mode append. J'espère que cet exemple clarifie la question. – Jason
Hmm, je ne suis pas sûr de ça. Peut-être ajouter une balise linux à votre message pour que certaines personnes de Linux puissent voir cela et entrer. Je ne sais pas pourquoi votre programme Perl ne sait pas quels fichiers il a ouverts. C'est votre programme, n'accède-t-il pas aux fichiers auxquels vous lui avez demandé d'accéder? Ou si vous êtes en train de calculer les noms de fichiers (ce que j'ai fait dans cobol, mais savez quand même dans quel répertoire les trouver, et quel schéma de nommage ils utilisent), vous aurez toujours des indices comme ceux que je mentionne. Aussi, puisque c'est votre programme, et si vous êtes en train de calculer les noms de fichiers, ne faites-vous pas aussi que votre programme Perl sorte de son propre rapport sur les fichiers? Comme, juste après avoir calculé le nom de fichier, faites-le copier la chaîne de nom dans un fichier de rapport séparé.
Je dois pouvoir faire cela pour un script Perl arbitraire sans le modifier pour rendre compte des fichiers ouverts. – Jason
Vous devez trouver la documentation pour les fonctionnalités non documentées VMS :-)
Sérieusement, je pense que set watch
pourrait faire ce que vous voulez. Si vous émettez
$ set watch file/class=(all,nodump)
$ perl yourperlscript.pl
Vous obtiendrez des charges de sortie qui, espérons-le, incluront ce que vous voulez. Je ne l'ai pas fait pendant des années, vous avez probablement ajuster les options pour l'affiner. Voir http://www.parsec.com/openvms/undocumented.php?page=13
- 1. Liste des fichiers ouverts détenus par un processus?
- 2. Identifier les fichiers ouverts un processus particulier sur linux
- 3. Comment tracer tous les fichiers ouverts par un processus et ses processus fils?
- 4. Fermeture de tous les fichiers ouverts dans un processus
- 5. fichiers sur plusieurs processus
- 6. Rails sur VIM sans fichiers ouverts
- 7. Fichiers PHP ouverts?
- 8. Trop de fichiers ouverts
- 9. Lister tous les fichiers ouverts
- 10. descripteurs de fichiers et fichiers ouverts
- 11. java.io.FileNotFoundException (Trop de fichiers ouverts)
- 12. Problèmes de fichiers ouverts SQLite3
- 13. Comment trouver tous les gestionnaires de fichiers par un processus par programme?
- 14. Trop de fichiers ouverts en python
- 15. Erreur "Trop de fichiers ouverts" dans pdflatex
- 16. Trop de fichiers ouverts erreur sur Ubuntu 8.04
- 17. Fermer automatiquement les fichiers ouverts dans un répertoire spécifique
- 18. Rendre les fichiers d'aide PDF ouverts automatiquement
- 19. Perforce - Soumettre uniquement les fichiers ouverts pour la branche, pas les fichiers ouverts pour l'édition
- 20. Fermeture des fichiers ouverts en utilisant C#
- 21. Trop de manipulateurs de fichiers ouverts
- 22. Avoir plusieurs pointeurs de fichiers ouverts simultanément?
- 23. Trop de fichiers ouverts: combien sont ouverts, ce qu'ils sont, et combien peuvent l'ouvrir
- 24. VMS EDT - Comment sélectionner le contenu complet du fichier?
- 25. Combien de fichiers ouverts en PHP?
- 26. JBoss Trop de fichiers ouverts Erreur
- 27. Fichiers ouverts créés avec BSAVE dans QuickBasic?
- 28. mysqldump | mysql renvoie une erreur 'trop de fichiers ouverts'. Pourquoi?
- 29. Comment tester le problème "Trop de fichiers ouverts"
- 30. Comment résoudre le problème "Trop de fichiers ouverts" dans Hudson?
Merci! Désolé, je ne peux pas encore voter. Cela me met sur la bonne voie, mais pas tout à fait résoudre mon problème. (a) J'ai besoin d'exécuter le script simultanément avec la commande qui va regarder, renvoyer les résultats pendant l'exécution ou après (b) en essayant d'utiliser show device/files/nosystem, il me semble que je ne récupère que le Perl lui-même le résultat, aucun des fichiers ouverts par le script Perl (en utilisant des choses comme "ouvrir" et "cravate") – Jason
J'ai compris (b). Maintenant, tout ce qui reste est (a). – Jason