system创建一个脱离线程的进程
【求助】system创建一个脱离线程的进程
看下面的代码说明,大家给个方法吧,谢谢了
//假如我线程,或者这个主进程退出了,我还想让system("/opt/scal")这个继续工作,应该怎么弄呢?
------解决方案--------------------
创建一个守护进程啊
------解决方案--------------------
fork+daemon
------解决方案--------------------
输出还和当前终端绑定着,当前终端关闭后重新开一个就看不到输出了
或者system里面将输出重定向到/dev/null
看下面的代码说明,大家给个方法吧,谢谢了
//假如我线程,或者这个主进程退出了,我还想让system("/opt/scal")这个继续工作,应该怎么弄呢?
void *DaemonThread(void *pArg)
{
//线程函数中 调用了
system("/opt/scal");
}
int main()
{
//创建一个线程
pthread_create(,DaemonThread,)//参数没写全
//假如我线程,或者这个主进程退出了,我还想让system("/opt/scal")这个继续工作,应该怎么弄呢?
}
------解决方案--------------------
创建一个守护进程啊
int Daemon()
{
struct sigaction act;
if(fork()!=0) exit(1);
/* 创建一个新的会议组 */
if(setsid()<0)exit(1);
/* 忽略信号SIGHUP */
act.sa_handler=SIG_IGN;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
if(sigaction(SIGHUP,&act,NULL)==-1)exit(1);
/* 子进程退出,孙进程没有控制终端了 */
if(fork()!=0) exit(1);
if(chdir("/")==-1)exit(1);
return 0;
}
------解决方案--------------------
fork+daemon
------解决方案--------------------
输出还和当前终端绑定着,当前终端关闭后重新开一个就看不到输出了
或者system里面将输出重定向到/dev/null