我想在我调用" ./start.sh
"的脚本./real_process
中包装我的进程,并且当需要超过8G的内存时让linux自动终止real_process。
我不希望这个限制适用于所有流程"。就是那个特别的人。我想在启动时这样做。
答案 0 :(得分:3)
您可以在脚本开头使用ulimit:
ulimit -m 8000000
或者如果由于某种原因不可用,请将您的real_process分支到后台并使用脚本的其余部分定期检查内存使用是否超过8G,然后终止。
while true; do
# check memory usage of process
# kill process if too high
sleep 60
done
答案 1 :(得分:1)
您可以将其设置为从/ proc / $ pid / smap不断获取内存使用量。一旦超过最大8GB,就可以杀死进程。
使用ps -e| grep [your_process_name]
获取pid。使用$value='/proc/$pid/smap'
获取内存使用情况,并将$value
与您需要确定的值进行比较,以确定它是否小于8GB。使用Kill
命令终止进程。把它扔进去。