我想使用 rlimit 限制子进程的内存使用。目前我们的代码如下:
old_rlimit := get_rlimit()
set_rlimit(child_process_rlimit)
cmd.Start()
set_rlimit(old_rlimit)
cmd.Wait()
但是,有时 Golang 运行时会在cmd.Start()
. 似乎在cmd.Start()
当前进程中会分配一些内存,如果当前内存使用率高于child_process_rlimit
,则会引发错误。
我想知道有没有什么办法可以限制子进程的内存使用而不影响当前进程?