尽管修改了 /etc/security/limits.conf 文件,但 ulimit -n 命令没有显示任何变化

尽管修改了 /etc/security/limits.conf 文件,但 ulimit -n 命令没有显示任何变化

编译时丛集,我面临以下错误。

/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libgaleri-xpetra.a: Too many open files
/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libgaleri-epetra.a: Too many open files
/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libaztecoo.a: Too many open files
/usr/bin/ld: cannot find /usr/local/bin/trilinos-12.12.1/lib/libisorropia.a: Too many open files
.
.
.
/usr/bin/ld: cannot find /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o: Too many open files
collect2: error: ld returned 1 exit status
src/io/mesh_input/quick_grid/unit_test/CMakeFiles/ut_QuickGrid_solidCylinder_np1.dir/build.make:1465: recipe for target 'src/io/mesh_input/quick_grid/unit_test/ut_QuickGrid_solidCylinder_np1' failed
make[2]: *** [src/io/mesh_input/quick_grid/unit_test/ut_QuickGrid_solidCylinder_np1] Error 1
CMakeFiles/Makefile2:1009: recipe for target 'src/io/mesh_input/quick_grid/unit_test/CMakeFiles/ut_QuickGrid_solidCylinder_np1.dir/all' failed
make[1]: *** [src/io/mesh_input/quick_grid/unit_test/CMakeFiles/ut_QuickGrid_solidCylinder_np1.dir/all] Error 2
.
.
[ 58%] Linking CXX static library libPeridigmLib.a
[ 58%] Built target PeridigmLib
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

我使用了关联使用下列方法增加进程的软限制和硬限制:

#@student        -       maxlogins       4

* hard nofile 97816
* soft nofile 97816
session required pam_limits.so

# End of file

但是,即使按照链接中的说明更新 limit.conf 文件后重新启动 wsl 终端,ulimit -n仍然会显示1024修改后的值。为什么没有改变?有什么建议吗?

我正在使用适用于 Linux Ubuntu 16.04 的 Windows 子系统。

答案1

/etc/security/limits.conf是 PAM 构造。通常情况下,PAM 会在“普通”Linux 中用户登录时处理此问题,但是……您实际上并没有在 WSL 中“登录”,因此PAM 未被调用

解决方法如下所述相同的 Github 线程是运行sudo su $USERsudo su - $USER或类似命令(请参阅主题以获取其他建议)。生成的 shell 将limits.conf通过 PAM 进行处理,您应该能够按预期提高那里的限制(ulimit -n 97816从您的问题来看,听起来是 )。只要 peridigm 的构建停留在该子 shell 中,您就没问题。

显然,这不是理想的,但希望它能帮助你克服这个障碍。

答案2

只需使用 sudo su $USER --shell /bin/bash --command "ulimit -n"

相关内容