从C ++失败的Android杀子过程

问题描述 投票:0回答:1

我的Java的代码对C ++函数JNI调用(function0); C ++代码,然后开始一个过程:

int main_pid,new_process_pid=-1;
void function0(){
    main_pid=getpid();
    new_process_pid=fork();
    if(main_pid!=getpid()){
        main_process();//some process with its own threads
    }
}

void kill_sub_process(){
    if(new_process_pid!=-1){
        kill(new_process_pid,SIGKILL);
    }
}

当我尝试从我的活动进行呼叫杀子过程中的onStop()来kill_sub_process功能以下错误的logcat和应用程序崩溃显示出来:

致命信号4(SIGILL),码1,在TID 3844故障地址0x91cb3110

什么是安全杀子过程的正确方法?

该过程被打死,而不当我调用信号处理程序从子进程中,但是当父母将信号发送失败的任何问题;

android c++ process kill-process multiprocess
1个回答
0
投票

通过试验和错误我想,通过在C调用叉创建子进程++代码可以在Java代码通过调用杀死android.os.Process.killProcess(PID)(其中pid是子进程id),但不被父C ++代码;

© www.soinside.com 2019 - 2024. All rights reserved.