[perl]Bloquer le chargement de variable
fxtaa
Messages postés
1050
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
comme vous le savez tous (^^), lorsque perl effectue un "Ulimit -a" la valeur Data est celle de Perl et non de l'utilisateur.
Est il possible de bloquer le chargement de variable via un flag ou autre à l'exécution de perl ?
comme vous le savez tous (^^), lorsque perl effectue un "Ulimit -a" la valeur Data est celle de Perl et non de l'utilisateur.
Est il possible de bloquer le chargement de variable via un flag ou autre à l'exécution de perl ?
Configuration: Windows XP / Firefox 3.6
16 réponses
-
hello
ne serait-ce pas plutôt les limites du shell qui exécute perl ?
quelle variable ? -
Les variables que perl chargent pour modifier son Ulimit.
Non, c'est très étrange, que ce soit en shell ou en ligne de commande direct le Ulimit -a sort bien les Ulimit de l'user.
Alors que si Ulimit -a est exécuté par perl (appel d'un shell par perl, system() ou ``) celui - ci sort le Ulimit de perl.... -
ulimit [-SHacdefilmnpqrstuvx [limit]]
Provides control over the resources available to the shell and to processes started by it, on systems that allow such control.
tu peux modifier les valeurs
ulimit [-SHacdefilmnpqrstuvx [limit]]
-d The maximum size of a process’s data segment -
Nan mais je ne souhaite pas modifier les valeur du ulimit.
Je souhaite, en passant par perl, vérifier les valeurs ulimit de l'utilisateur avec lequel je suis loggé. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
perl -e 'system("bash -c \"ulimit -a\"")'
-
ok, j'ai essayé, il me sort une petite erreur :
sh: bash: introuvable.
systeme Unix Aix -
quel est ton shell ? sh, ksh, csh, tcsh ?
remplace bash par celui-ci
ou bien
perl -e 'use Env qw (SHELL);system("$SHELL -c \"ulimit -a\"")' -
oki merci :
perl -e 'system("ksh -c \"ulimit -a\"")'
fonctionne mais le résultat n'est toujours pas correct.. il me sort un data a "2097152", or lorsque je le fais en ligne de commande il est a illimité. -
-
il n'est plus illimité puisque perl en utilise une partie, je pense
-
ok, pas bête ca !
Mais alors dans ce cas la, pourquoi lorsque je passe par un .sh (sans passer par perl avant), je suis a illimité ? -
le perl consomme de la mémoire puisque le ksh -c ulimit et lancé depuis perl
mais il est vrai que sur Ubuntu, j'ai unlimited
$ perl -e 'system("bash -c \"ulimit -d\"")'
unlimited
$ -
moi j'ai ca :
bob:/user/bob>ulimit -d Illimité bob:/user/bob>perl -e 'system("ksh -c \"ulimit -d\"")' 2097152 -
essaye
perl -e 'system("ksh -c \"ulimit -d unlimited ; ulimit -d\"")' -
"ulimit -d unlimited" va changer la valeur du Ulimit pour perl c est bien ca ?
Je ne préfèrerai pas modifier le Ulimit de perl.
D'autres programmes sur le serveur fonctionne avec perl et je ne veux pas tout faire planter.
Le but du script est de récupérer les valeurs Ulimit de l'utilisateur et non du Perl. Je ne pense pas qu'en modifiant le Ulimit du Perl pour correspondre à celui de l'utilisateur la valeur récupéré soit viable.
(je sais pas si je suis clair dans mes propos) -
ulimit ne modifie que les valeurs de ce perl, tout est reinitialisé au logoff ou quand la tâche termine.