[perl]Bloquer le chargement de variable

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 ?
Configuration: Windows XP / Firefox 3.6

16 réponses

  1. Contributeur
    hello
    ne serait-ce pas plutôt les limites du shell qui exécute perl ?
    quelle variable ?
    0
    1. 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
      1. Contributeur
        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
        1. 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
          1. Contributeur
            perl -e 'system("bash -c \"ulimit -a\"")'
            0
            1. ok, j'ai essayé, il me sort une petite erreur :
              sh: bash:  introuvable.


              systeme Unix Aix
              0
              1. Contributeur
                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
                1. 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
                  1. Contributeur
                    il n'est plus illimité puisque perl en utilise une partie, je pense
                    0
                    1. 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
                      1. Contributeur
                        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
                        1. moi j'ai ca :
                          bob:/user/bob>ulimit -d
                          Illimité
                          bob:/user/bob>perl -e 'system("ksh -c \"ulimit -d\"")'
                          2097152
                          
                          0
                          1. Contributeur
                            essaye
                            perl -e 'system("ksh -c \"ulimit -d unlimited ; ulimit -d\"")'
                            0
                            1. "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
                              1. Contributeur
                                ulimit ne modifie que les valeurs de ce perl, tout est reinitialisé au logoff ou quand la tâche termine.
                                0