Linux下守护进程的实现
来源:互联网 发布:全面战争多核优化 编辑:程序博客网 时间:2024/06/06 01:15
一.fork()函数
通过系统调用创建一个与原进程几乎一模一样的进程,可理解为克隆了一个自己。fork函数的返回值有下面几种情况:
1. 在父进程中返回新创建子进程的的进程ID 2. 在子进程中返回0 3. 调用失败,返回负值
二.进程相关知识
1.进程组
一个或者多个进程的集合。每个进程组拥有一个进程组ID,同时有一个进程组长,且( 进程组长ID == 进程组ID )。
2.会话
一个或者多个进程组的集合。每个会话拥有一个领头进程。
3.控制终端
一个会话的所有进程组共享一个控制终端,fork产生的子进程继承父进程的进程组、会话、控制终端。会话的领头进程可以重新打开一个控制终端。
三.setsid()函数
建立新会话:setsid()
若调用进程是组长进程,则出错返回。一般用法如下:
if(fork()) exit(0); // 父进程退出setsid(); // 创建新会话,同时子进程变为组长进程
若调用进程不是组长进程,则创建一个新会话:
1. 该进程变成新会话领头进程
2. 该进程成为一个新进程组的组长进程
3. 该进程没有控制终端,如果之前有,则中断
由二(3)可知,会话的领头进程可重新打开一个控制终端。为了防止情况发生,可如下使用:
if(fork()) exit(0); // 父进程退出setsid(); // 以子进程为领头进程建立会话if(fork()) // 子进程调用fork,产生二代子进程 exit(0); // 二代子进程不再是新建会话的领头进程(不能打开控制终端)
0 0
- Linux下守护进程的实现
- Linux下的守护进程
- Linux下的守护进程
- linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- linux下的守护进程
- Linux 守护进程的实现
- Linux守护进程的实现
- linux系统下守护进程的概念与实现简介
- linux下的进程之-----守护进程
- Linux下守护进程
- Linux下守护进程
- linux 下守护进程
- Linux实现守护进程
- 高并发Web服务的演变:节约系统内存和CPU
- <Errors running builder 'Android Resource Manager' on project XXX>错误解决方法
- JS防止刷新,后退,关闭
- Hibernate 不同数据库的连接及SQL方言
- 机器学习经典书籍
- Linux下守护进程的实现
- iOS 从工程中删除Cocoapods
- WPF学习2(布局原则)
- onethink 常见问题
- 九九乘法表 -- 2015/9/24
- NSLog DEBUG MODE OR RELEASE MODE?
- 停课的沉淀反思(一)——今目标
- Leetcode NO.279 Perfect Squares
- Redis安装及C++调用redis