android系统中为什么无法fork出子进程?

时间:2021-08-20 14:21:38
我尝试利用JNI在native层调用fork, 试图创建一个子进程,正常情况下fork会返回两次,但我发现实际情况是只打印了父进程执行的日志,并没有创建出子进程,这可能是哪里的问题呢?谢谢~

关于fork:
http://blog.csdn.net/jason314/article/details/5640969

fork代码如下:

static void JNICALL create (JNIEnv *env, jclass thiz, jobject context, jclass clazz){
pid_t ppid = getpid();
pid_t pid = fork();
if (pid < 0) {
LOG_D(LOGTAG, "create--fork failed!");
} else if (pid == 0) {
LOG_D(LOGTAG, "create--runOnSubprocess start...");
runOnSubprocess(env,clazz,ppid,context);
LOG_D(LOGTAG, "create--runOnSubprocess finished!");
exit(1);
} else {
LOG_D(LOGTAG, "create--run on parent process!");
}
}

5 个解决方案

#1


你好,问下你的这个问题解决了吗?我现在也遇到这个问题,始终进不去子进程

#2


后面由于采用了其他方案,没有深入研究,我当时发现开始时是可以成功fork的,但运行多次之后就不行了,我怀疑是之前fork的没有销毁,所以无法进入

#3


应该是可以fork成功的,估计查看日志的方式有问题。可以使用adb shell  然后 ps 打印所以进程进行查看是否成功

#4


我也遇到同样的问题,有大神解决出来了吗?

#5


该回复于2018-01-24 11:54:09被管理员删除

#1


你好,问下你的这个问题解决了吗?我现在也遇到这个问题,始终进不去子进程

#2


后面由于采用了其他方案,没有深入研究,我当时发现开始时是可以成功fork的,但运行多次之后就不行了,我怀疑是之前fork的没有销毁,所以无法进入

#3


应该是可以fork成功的,估计查看日志的方式有问题。可以使用adb shell  然后 ps 打印所以进程进行查看是否成功

#4


我也遇到同样的问题,有大神解决出来了吗?

#5


该回复于2018-01-24 11:54:09被管理员删除