我有一个需要通过加载共享库来扩展的进程。有没有办法在沙盒环境中运行共享库代码(除了外部进程),这样如果它是段错误的,它不会使进程崩溃,并且它可以分配多少内存的限制,它可以使用的cpu周期等等。
答案 0 :(得分:1)
没有。如果共享库segfaults你的进程将segfault(该进程正在执行库代码)。如果你将它作为一个外部进程运行并使用RPC机制,那么你就可以崩溃了,但你的程序需要检测服务何时不可用(并且需要重新启动它)。像chroot
这样的工具可以沙箱进程,但不能处理可执行文件链接到的各个库。
答案 1 :(得分:1)
我认为没有一种干净的方法可以做到这一点。你可以尝试:
从本质上讲 - 尝试这会很有趣,但我建议您使用单独的流程方法并使用RPC,配额,ulimits等。