fork: Ресурс временно недоступен при вызове rvm из сценария оболочки, но сам rvm работает нормально - PullRequest
5 голосов
/ 05 марта 2011

Я хочу переключаться между различными проектами, и одна часть этого заключается в изменении рубинов и наборов гемов через rvm.Сам по себе RVM прекрасно работает, но когда я помещаю его в сценарий оболочки, я получаю:

fork: ресурс временно недоступен

Вот выводиз рвм инфо.Дайте мне знать, если есть какая-либо другая информация, которую я могу дать, которая будет полезна.

$ rvm info

ruby-1.9.2-p136@pax-arachnae:

  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 (wayneeseguin@gmail.com) [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/ruby-1.9.2-p136@pax-arachnae"
    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/ruby-1.9.2-p136@pax-arachnae/bin/rake"

  environment:
    PATH:         "/Users/rfzabick/.rvm/gems/ruby-1.9.2-p136@pax-arachnae/bin:/Users/rfzabick/.rvm/gems/ruby-1.9.2-p136@global/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/ruby-1.9.2-p136@pax-arachnae"
    GEM_PATH:     "/Users/rfzabick/.rvm/gems/ruby-1.9.2-p136@pax-arachnae:/Users/rfzabick/.rvm/gems/ruby-1.9.2-p136@global"
    BUNDLE_PATH:  "/Users/rfzabick/.rvm/gems/ruby-1.9.2-p136@pax-arachnae"
    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"

Ответы [ 5 ]

2 голосов
/ 29 июня 2016

fork: ресурс временно недоступен

Ошибка вызвана текущими ограничениями ресурса оболочки, установленными ulimit (проверка ulimit -a). Таким образом, вы можете попробовать другую оболочку или увеличить ресурсы с помощью команды ulimit, которая контролирует ресурсы, доступные для оболочки, и обрабатывает ее в операционной системе.

Чтобы увеличить лимиты, попробуйте выполнить:

ulimit -Sn unlimited && ulimit -Sl unlimited

для повышения мягких пределов до жестких или:

ulimit -l unlimited
ulimit -n 10240 

, чтобы установить максимальный размер процесса неограниченным, а максимальное количество открытых файлов - 10240.

См .: help ulimit для получения дополнительной информации.

Чтобы увеличить ограничение процесса, используйте эту команду:

sudo launchctl limit maxproc 1024 2048

См. Также: Как сохранить ulimit настроек в OSX?

2 голосов
/ 05 марта 2011

Я использую RVM в сценариях оболочки, и он отлично работает.Одна вещь, которая может объяснить, почему вы не можете, это ваша версия старая.Текущая версия 1.2.8, а вы 1.0.9.

RVM обновляется часто, поэтому рекомендуется обновлять его как минимум каждые пару недель.В текущем RVM мы использовали бы rvm get head для обновления, но я не уверен, что это было то же самое в 1.0.9.Если нет, попробуйте rvm help update.

1 голос
/ 26 марта 2012

У меня была такая же проблема с системным ruby ​​1.8.7 на OSX 10.7. Я использую RVM, поэтому просто переключение на другой ruby ​​1.9.2-p290 решило проблему. (Я не использую 1.8.7 в любом проекте).

1 голос
/ 08 февраля 2012

У меня тоже была та же ошибка, но для меня мой rvm был испорчен и использовал ruby ​​1.8.7 вместо 1.9.3. Я выполнил требования rvm, и он предупредил меня об этом. вернулся на 1.9.3 и все снова заработало.

1 голос
/ 21 июня 2011

Только что возникла проблема и она была решена в Red Hat 5: ошибка: fork: Ресурс временно недоступен

Исследование, в котором мы нашли это: 1. Сценарии запуска cron не полностью входят в систему как пользователь. Поэтому, если команды ulimit введены в / etc / profile, они не будут запускаться при запуске сценариев cron.

  1. Имея дело с пользователем oracle на машине со многими базами данных, мы обнаружили, что ulimit -u вызывает проблему. У нас было запущено 800 процессов Oracle (показывает с помощью ps -ef | grep oracle | wc -l), но оболочка bash работала бы нормально с ulimit -u 2020, но не работала с ulimit -u 2010.

Оказывается, что технологические ограничения должны быть неправильными. Должны также включать темы. Эта команда показывает число, близкое к нашему опыту того, что нужно ulimit -u: ps -eLf | grep oracle | egrep -v root | wc -l

Итак, суть в том, что ваш ulimit -u установлен достаточно высоко при работе с такими нагрузками, как oracle.

...