如何为非root用户设置“每个进程的最大线程数”ulimit?

Ulimit手册页build议-r选项将设置这个,但它似乎只对root用户有效,没有等同于通过/ etc / security / limits设置它?

有任何想法吗?

你说的AIX,但在Linux的情况下,我认为它只是-u限制开关。 在Linux中,这表示“进程”,但是对于bash,ulimit只是setrlimit系统调用的一个接口。 这可以通过运行strace bash -c 'ulimit -u 10'来看到,它返回:

 setrlimit(RLIMIT_NPROC, {rlim_cur=10, rlim_max=10}) = 0 

setrlimit的手册页指出:

RLIMIT_NPROC可为调用进程的实际用户标识创build的最大进程数( 或更准确地说,在Linux线程上 )。 遇到此限制时,fork(2)将失败,并显示EAGAIN错误。

那么对AIX来说也许是一样的? 此链接指出:“AIX没有定义RLIMIT_NPROC或RLIMIT_MEMLOCK资源”,但是您可以在developerworks上find更确切的答案。

对于权限问题,解决scheme可能是用root设置限制,然后su给用户你需要增加限制。 过去,我不得不为此限制其他资源,例如,最大打开文件。 limits.conf没有被应用,所以我从根目录使用sudo或su,然后限制被inheritance。