2011-03-05 15 views
5

Quiero cambiar entre diferentes proyectos, y una parte de eso está cambiando rubíes y gemsets través rvm. RVM funciona muy bien para mí por sí mismo, pero cuando pongo una llamada a ella en un script de shell, me sale:tenedor: Recurso temporalmente no disponible al llamar RVM de un script de shell, pero RVM funciona bien por sí mismo

fork: Resource temporarily unavailable

Aquí está la salida de información RVM. Avíseme si hay otra información que pueda dar que sea útil.

$ rvm info 

[email protected]: 

    system: 
    uname:  "Darwin savoy.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386" 
    bash:  "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)" 
    zsh:   "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)" 

    rvm: 
    version:  "rvm 1.0.9 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]" 

    ruby: 
    interpreter: "ruby" 
    version:  "1.9.2p136" 
    date:   "2010-12-25" 
    platform:  "x86_64-darwin10.6.0" 
    patchlevel: "2010-12-25 revision 30365" 
    full_version: "ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]" 

    homes: 
    gem:   "/Users/rfzabick/.rvm/gems/[email protected]" 
    ruby:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136" 

    binaries: 
    ruby:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin/ruby" 
    irb:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin/irb" 
    gem:   "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin/gem" 
    rake:   "/Users/rfzabick/.rvm/gems/[email protected]/bin/rake" 

    environment: 
    PATH:   "/Users/rfzabick/.rvm/gems/[email protected]/bin:/Users/rfzabick/.rvm/gems/[email protected]/bin:/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/bin:/Users/rfzabick/.rvm/bin:/usr/local/bin:/Applications/Emacs.app/Contents/MacOS:/Applications/MacVim.app/Contents/MacOS:/usr/local/mysql/bin:/Developer/usr/bin:/Users/rfzabick/.ec2/ec2-api-tools-1.3-62308/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/Applications/Google Chrome.app/Contents/MacOS" 
    GEM_HOME:  "/Users/rfzabick/.rvm/gems/[email protected]" 
    GEM_PATH:  "/Users/rfzabick/.rvm/gems/[email protected]:/Users/rfzabick/.rvm/gems/[email protected]" 
    BUNDLE_PATH: "/Users/rfzabick/.rvm/gems/[email protected]" 
    MY_RUBY_HOME: "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136" 
    IRBRC:  "/Users/rfzabick/.rvm/rubies/ruby-1.9.2-p136/.irbrc" 
    RUBYOPT:  "" 
    gemset:  "pax-arachnae" 

Respuesta

2

Uso RVM en scripts de shell y funciona bien. Una cosa que podría explicar por qué no puedes, es que tu versión es vieja. La versión actual es 1.2.8, y estás en 1.0.9.

RVM actualizaciones a menudo, por lo que es una buena idea actualizar al menos cada par de semanas. En el RVM actual, usaríamos rvm get head para actualizar, pero no estoy seguro de que fuera igual en 1.0.9. Si no, intente rvm help update.

+0

Que hizo el truco. Gracias. –

+0

Me alegro de que haya ayudado. Creo que es una gran herramienta. –

+0

Santa vaca, ¿alguna vez? Rocas RVM. –

1

Sólo tuvimos un problema y lo resolvió en el sombrero rojo 5 conseguir el error: tenedor: Recurso temporalmente no disponible

investigación que hicimos encontramos esto: 1. scripts de cron ejecutar No totalmente de inicio de sesión como el usuario. Por lo tanto, si los comandos ulimit se emiten en/etc/profile, no se ejecutarán cuando se ejecuten los scripts cron.

  1. Al tratar con el usuario oracle en una máquina con muchas bases de datos, encontramos el ulimit -u para causar el problema. Tuvimos 800 procesos de Oracle se ejecuta (muestra con ps -ef | grep oráculo | wc -l), sino una cáscara del golpe que funciona bien con ulimit -u 2020, pero sería un error con ulimit -u 2010.

Resulta los límites del proceso deben ser un nombre inapropiado. Debe incluir hilos también Este comando muestra un número más cercano a nuestra experiencia de qué ulimit -u necesitaba: ps -eLf | grep oráculo | egrep -v raíz | wc -l

Así que la conclusión es, asegúrese de que su ulimit -u se establezca alto suficiente cuando se trata de cargas de trabajo como Oracle.

1

También tuve el mismo error, pero para mí mi RVM habían sido mal estado y estaba usando ruby ​​1.8.7 en lugar de 1.9.3. Hice mis requerimientos y me lo advirtió. cambió de nuevo a 1.9.3 y todo comenzó a funcionar de nuevo.

1

tuve el mismo problema con el rubí sistema 1.8.7 en OSX 10.7. Estoy usando RVM por lo que simplemente cambiar a diferentes rubíes 1.9.2-p290 resolvió el problema. (No uso 1.8.7 en ningún proyecto de todos modos).

2

fork: Resource temporarily unavailable

El error es causado por los límites actuales de recursos shell establecidos por ulimit (comprobar por ulimit -a). De modo que puede probar en otro shell o aumentar los recursos utilizando el comando ulimit que controla los recursos disponibles para el shell y los procesos que crea en el sistema operativo.

aumentar los límites, intente ejecutar:

ulimit -Sn unlimited && ulimit -Sl unlimited 

para elevar los límites blandos a un disco, o:

ulimit -l unlimited 
ulimit -n 10240 

para establecer el tamaño máximo de un proceso para ilimitado y el número máximo de archivo abierto a 10240.

Ver: help ulimit para obtener más información.

Para aumentar límite de proceso, utilice este comando:

sudo launchctl limit maxproc 1024 2048 

Consulte también: How to persist ulimit settings in OSX?

Cuestiones relacionadas