博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下守护进程启动一个新应用进程的区别system、open和execl (execl在Ubuntu和linux执行的区别)
阅读量:4166 次
发布时间:2019-05-26

本文共 753 字,大约阅读时间需要 2 分钟。

用C都可以调用,启动一个应用,在守护进程启动一个进程只能用 execl, 

systme和popen与execl实际上差别很大。

system:启动另外一个应用之后,新应用的进程独立,当前进程也活着。即有两个互不影响的进程。

execl:启动另外一个应用之后,新应用的进程即是当前进程。进程数是一个。
  需要强调的是:

  system/popen都是阻塞的,即运行不结束就不会返回。

  如果不需要阻塞,马上返回,加一个后台运行符号 & 即可。

--------

execl在Ubuntu和linux执行的区别:(里面的参数不一致)

1  ubuntu中守护进程带起一个应用进程

       sprintf(cmdLine, "%s/%s/%s", WORK_DIR_PATH,APP_DIR_PATH,taskP->taskName);

        if (execl(cmdLine, taskP->taskName, NULL) < 0)
        {
            sprintf(log, "\'%s\'start failed 2222222222222%s", taskP->taskName, strerror(errno));
            MyWriteLog(log,TRUE);
            exit(1);
        } 

2   linux中守护进程带起一个应用进程

        sprintf(cmdLine, "./%s &", taskP->taskName);
        if (execl("/bin/ash","ash","-c",cmdLine,(char *)0) < 0)
        {
            sprintf(log, "\'%s\'启动失败:%s", taskP->taskName, strerror(errno));
            MyWriteLog(log,TRUE);
            exit(1);
        }

转载地址:http://uuexi.baihongyu.com/

你可能感兴趣的文章
从Hello World 谈Python运行原理
查看>>
Python的执行原理
查看>>
Python执行代码的实际操作的五个步骤详细介绍
查看>>
不可不知的python知识
查看>>
Python深入01 特殊方法与多范式
查看>>
python编码规范
查看>>
Python: 打印出大写字符C
查看>>
Python: 打印完全平方数
查看>>
Python标准库(非常经典的各种模块介绍)
查看>>
Python: Apply方法的应用
查看>>
python十个实战项目
查看>>
马云给北大学子讲创业:阿里为什么一直不提供班车和宿舍
查看>>
Python3.x区别
查看>>
Python:整数比较大小和输出
查看>>
Python3.2官方文档教程--数字
查看>>
Python3.2官方文档教程--字符串
查看>>
Python3.2官方文档教程- 列表
查看>>
Python3.2官方文档---while关键字
查看>>
Tomcat集群Cluster实现原理剖析
查看>>
Tomcat集群配置
查看>>