exit, exec, 守护进程

exit正常终止进程  abort 异常终止进程
exit() 与 _exit()的区别: exit()在头文件stdlib.h 中,  _exit()在unistd.h中, 均能正常终止进程,但_exit()终止后立即返给内核,而exit()先执行一些清除操作,然后将控制权交给内核.

若父进程先退出时,则系统回让init进程接管子进程..
当子进程先退出时,子进程进入僵死状态,,应使父进程调用 wait 或waitpid函数,则此时父进程会等待子进程结束

execv(const  char  *path, const  char  *envp[])
execv函数:函数通过路径名方式调用可执行文件作为新的进程映像,,参数path 是将要执行的程序的路径名envp参数是一个以NULL结尾的字符串数组.
execvp函数: 与上个函数用法相似, 不同的是参数filename, 该参数如果包含"/",就相当于路径名,若果不包含, 就在PATH环境变量定义的目录中寻找可执行文件.

exec函数可以执行二进制可执行文件, 也可执行Shell脚本程序, 在shell脚本执行时,第一行必须是: #!interpretername[arg]

编写守护进程要点:
~调用fork 产生一个子进程,退出父进程
~调用sesid创建新的对话期.
~禁止进程重新打开控制终端
~关闭不再需要的文件描述符
~将当前目录改为根目录
~将文件创建时使用的屏蔽字设为0
~处理SIGCHLD信号
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值