【发布时间】:2016-02-10 16:44:37
【问题描述】:
我有一个庞大的应用程序需要在某个时候自行分叉。该应用程序是多线程的,分配了大约 200MB 的内存。为了确保进程分配的数据不会重复,我现在要做的是启动一个新线程并在该线程内分叉。根据我的阅读,只有调用fork 的线程会被复制,但是分配的内存会发生什么?那还会在那里吗?这样做的目的是使用其他启动参数重新启动应用程序,当它分叉时,它将使用我的新参数调用main,从而有望获得同一程序的新进程。现在在你问之前:我不能保证该进程的二进制文件仍然与我启动该进程时相同,否则我只能 fork 和 exec /proc/self/exe 中的内容。
【问题讨论】: