我有一个Linux进程(C程序),它产生了一些subprocess。 我想在系统级别的subprocess中禁止另一个分叉,以至于如果这些进程试图分叉的话,这些进程将会被杀死。 如何实现? 我宁愿将此策略embedded到主机C代码中。 可以setrlimit(2)
这样做吗?
是的,setrlimit()可以做到这一点。 参考手册页并阅读
RLIMIT_NPROC
可以为调用进程的实际用户标识创建的进程的最大数目(或更准确地说在Linux上,线程)。 遇到此限制时,fork(2)将失败,并显示EAGAIN错误。
或者,您可以使用/etc/security/limits.conf
设置进程的硬性限制。 在文件中查找一些例子。
#@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0