hi,

In recent release of Android, I suddenly find the fork() will NOT run
sub-process once parent-process exit. For example, following program will
only output "main()", not output "sub-process continue":
 ========================================
printf("main()\n");

    pid_t pid = fork();
    if(pid < 0) {
        return -1;
    }else if(pid > 0){
        exit(0);
    }

    setsid();

printf("sub-process continue\n");
========================================


Maybe parent-process exit too fast, so, I add a sleep to delay
parent-process exit. So, test following program:
========================================
printf("main()\n");

    pid_t pid = fork();
    if(pid < 0) {
        return -1;
    }else if(pid > 0){
        printf("parent-process exit\n");
        usleep(500);
        exit(0);
    }

    setsid();

printf("sub-process continue\n");
========================================

In most results, will output following:
------------------------------------
main()
parent-process exit
sub-process continue
------------------------------------

However, sometimes still can't run sub-process, output following:
------------------------------------
main()
parent-process exit
------------------------------------


Do you know what happen?

Thanks.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to