2012-08-01 5 views
0

Je suis en train de lire un livre "Travailler avec des processus Unix" qui utilise ruby ​​pour expliquer les processus Unix/Linux. C'est la première fois que je travaille avec Ruby. J'ai essayé un exemple pour obtenir des limites de ressources sur les processus.Ruby IRB - Ne peut pas faire Process.getrlimit

irb(main):001:0> Process.getrlimit(:CORE) 
Errno::EINVAL: Invalid argument - getrlimit 
    from (irb):1:in `getrlimit' 
    from (irb):1 
    from :0 


irb(main):004:0> Process.getrlimit() 
ArgumentError: wrong number of arguments (0 for 1) 
    from (irb):4:in `getrlimit' 
    from (irb):4 
    from :0 

Mais je ne peux pas sembler obtenir « getrlimit » reconnu (bien qu'il dit que j'ai mal d'arguments si je ne fournit pas de args). Je n'ai rien trouvé sur google ou SO. Essayé avec: NOFILE,: CORE et autres. Y at-il quelque chose que j'ai besoin d'inclure/exiger pour que getrlimit fonctionne. Environnement:

Ubuntu 11.04 32 bit. Kernel 3.0.0-14 
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] 
irb 0.9.5(05/04/13) 

concernant

Répondre

0

Désolé .. never mind. Il semble que IRB utilisait une version antérieure de ruby ​​(1.8.7) qui ne supportait pas le getrlimit (bien que selon tous les comptes sur google, cela aurait dû fonctionner). J'avais mis à jour ruby ​​à 1.9.1 mais je n'ai pas mis à jour le lien depuis/usr/bin/irb vers /usr/bin/irb1.9.1. Donc, IRB fonctionnait encore Ruby 1.8.7. Après la mise à jour du lien symbolique d'irb vers la version 1.9.1, getrlimit fonctionne maintenant.

+0

Envisagez d'utiliser un gestionnaire de versions tel que RVM (http://rvm.io) ou rbenv (https://github.com/sstephenson/rbenv/) lors de l'installation de plusieurs versions de Ruby. Il n'est pas recommandé de changer l'installation native du système. – Amir

+0

Pour Ruby 1.8, la syntaxe correcte est 'Process.getrlimit (Process :: RLIMIT_CORE)'. – Casper

+0

Vous devez marquer votre réponse comme la réponse acceptée. –

Questions connexes