能力值:
( LV5,RANK:60 )
|
-
-
2 楼
这么做是将子进程转换成守护进程,你还得需要加上setsid函数,设置一下它的mask,也就3到4步左右。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
说的好可怜啊
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
很多应用都在用daemon进程,猎豹、360
bionic中有damon方法可以直接用,
为了防止cwd占用导致部分文件系统卸载不掉,建议切换当前目录,即参数1传0
如果不使用标准输入输出,第二个参数也可以传0
#include <unistd.h>
int daemon( int nochdir, int noclose )
{
pid_t pid;
if ( !nochdir && chdir("/") != 0 )
return -1;
if ( !noclose )
{
int fd = open("/dev/null", O_RDWR);
if ( fd < 0 )
return -1;
if ( dup2( fd, 0 ) < 0 ||
dup2( fd, 1 ) < 0 ||
dup2( fd, 2 ) < 0 )
{
close(fd);
return -1;
}
close(fd);
}
pid = fork();
if (pid < 0)
return -1;
if (pid > 0)
_exit(0);
if ( setsid() < 0 )
return -1;
return 0;
}
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
你是咖啡?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
都搞ANDBROID?
|
|
|