首页 > 在linux怎么限制一个进程运行内存大小

在linux怎么限制一个进程运行内存大小

在运行一个命令的时候可以限制其消耗内存大小,我找到一个命令ulimit,但是他如果发现进程超过最大内存的话,会kill掉。这并不是我想要的,我希望只是限制使用最大内存,但不能kill掉。


ulimit 是解决这个问题的正道。

如果内存超了还不 kill,那么应该怎么处置这个程序呢?任其继续使用内存么?那还限制总内存干什么呢~

如果命令是自己写的,并且只要外部通知一下就能够回收内存,那么可以考虑让这个命令能够响应某个特殊消息,比如 SIGUSR1,收到后就回收内存。然后写一个 monitor 程序,通过 /proc/$PID 来不断看内存使用,一旦超了就给它发消息。不过看起来题主的要求是任意命令,这个方法就明显不工作了。

【热门文章】
【热门文章】