[perl]Bloquer le chargement de variable

Fermé
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 - 9 mars 2010 à 10:46
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 10 mars 2010 à 14:19
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 ?

16 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 mars 2010 à 11:01
hello
ne serait-ce pas plutôt les limites du shell qui exécute perl ?
quelle variable ?
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
9 mars 2010 à 11:04
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....
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 mars 2010 à 12:10
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
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
9 mars 2010 à 14:32
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é.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 mars 2010 à 15:01
perl -e 'system("bash -c \"ulimit -a\"")'
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
9 mars 2010 à 15:05
ok, j'ai essayé, il me sort une petite erreur :
sh: bash:  introuvable.


systeme Unix Aix
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 mars 2010 à 15:35
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\"")'
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
9 mars 2010 à 15:41
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é.
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
10 mars 2010 à 09:42
up
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 mars 2010 à 10:57
il n'est plus illimité puisque perl en utilise une partie, je pense
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
10 mars 2010 à 11:26
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é ?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 mars 2010 à 12:22
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
$
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
10 mars 2010 à 13:18
moi j'ai ca :
bob:/user/bob>ulimit -d
Illimité
bob:/user/bob>perl -e 'system("ksh -c \"ulimit -d\"")'
2097152
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 mars 2010 à 13:24
essaye
perl -e 'system("ksh -c \"ulimit -d unlimited ; ulimit -d\"")'
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
10 mars 2010 à 13:42
"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)
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 mars 2010 à 14:19
ulimit ne modifie que les valeurs de ce perl, tout est reinitialisé au logoff ou quand la tâche termine.
0