首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NotImplementedError: fork()函数在此计算机上未实现

NotImplementedError: fork()函数在此计算机上未实现
EN

Stack Overflow用户
提问于 2020-06-16 12:39:24
回答 2查看 1.2K关注 0票数 0

我正在Windows10 WSL2上测试一个Rails项目。我可以毫无问题地运行rails server,但是当我运行rails test test/integration时,我得到了NotImplementedError: fork() function is unimplemented on this machine错误

Ruby版本:ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

Rails版本:Rails 5.2.0

Ubuntu: 20.04

EN

回答 2

Stack Overflow用户

发布于 2020-06-16 14:27:45

在这台documentation上,据说

fork(2)在某些平台上不可用,如NetBSD和Windows4。因此,您应该使用()而不是fork()。

所以你要测试的gem正在尝试调用这个函数。您需要在文本编辑器中打开ruby gem,并将编写脚本的位置更改为fork()函数,将其替换为()。从这个开始:

代码语言:javascript
运行
复制
static VALUE
rb_f_fork(VALUE obj)
{
    rb_pid_t pid;

    switch (pid = rb_fork_ruby(NULL)) {
      case 0:
        rb_thread_atfork();
        if (rb_block_given_p()) {
            int status;
            rb_protect(rb_yield, Qundef, &status);
            ruby_stop(status);
        }
        return Qnil;

      case -1:
        rb_sys_fail("fork(2)");
        return Qnil;

      default:
        return PIDT2NUM(pid);
    }
}

到这个

代码语言:javascript
运行
复制
static VALUE
rb_f_fork(VALUE obj)
{
    rb_pid_t pid;

    switch (pid = rb_fork_ruby(NULL)) {
      case 0:
        rb_thread_atfork();
        if (rb_block_given_p()) {
            int status;
            rb_protect(rb_yield, Qundef, &status);
            ruby_stop(status);
        }
        return Qnil;

      case -1:
        rb_sys_fail("spawn(2)");
        return Qnil;

      default:
        return PIDT2NUM(pid);
    }
}

或者,您可以在windows环境中维护rails应用程序的单独副本来测试集成:从github克隆它

git clone <the path for your remote repository>

然后,在您的gemfile中,取消注释最后一行下面的gem:

Windows does not have ...

从这个#gem zinfo [...]

要这样做:

gem zinfo [...]

到最后,运行

bundle install

更新您的lock.gemfile。

票数 2
EN

Stack Overflow用户

发布于 2020-06-16 14:02:55

我找不到文档,但很可能,WSL不支持fork()函数。

您可以尝试使用spawn()而不是fork()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62401042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档