| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 守护进程及相关概念 -> 正文阅读 |
|
[系统运维]守护进程及相关概念 |
目录 进程进程组和会话形成两级层次关系:进程组是一组相关进程的集合,会话是一组相关进程组的集合。 一个进程组拥有一个进程组首进程,该进程id为该进程组id,新进程会继承其父进程所属进程组id。 进程组的生命周期是首进程创建组的时刻-最后一个进程退出时刻。进程可能会因为终止/加入另一个进程组而退出该组。 会话会话首进程是创建该会话的进程,其进程id为会话id,新进程继承其父进程会话id. 一个会话的所有进程共享一个控制终端,一个终端只能是一个会话的控制终端,控制终端在会话首进程首次打开终端设备时建立。 任一时刻,会话里的一个进程组成为终端的前台进程组,其他进程组成为后台进程组,只有前台进程组中进程才能从控制终端读取输入。 当控制终端连接建立,会话首进程会成为该终端的控制进程。 操作函数:????????getpgrp(void);获取进程组id ????????getpgid(pid_t pid); 获取指定进程的组id; ????????setpgid(pid_pid, pid_t pgid)设置进程pid的进程组 ????????getsid(pid_t pid)获取指定进程的会话id; ????????setsid(void) 设置会话id 守护进程(Daemon进程)守护进程:后台服务进程,生存期较长,常独立于控制终端并且周期性地执行某任务或等待处理某些发生的事件,一般d结尾。 特点: ? ? ? ? 1 生命周期长,在系统启动时被创建并一直运行直到系统关闭 ? ? ? ? 2 在后台运行并且不拥有控制终端。所以内核不会为守护进程自动生成任何控制信号和终端相关信号(SIGINIT,SIGQUIT..)(不能被控制终端的ctrl c等杀死) 但可以用kill -9给进程发送信号,杀死。 ?linux很多服务器 , 如Internet的 inetd,Web的httpd都用守护进程实现。 创建步骤 ? ? ? ? 1)fork()后,父进程退出,子进程继续执行 、 ????????????????如果不退出,终端会显示提示符,并且fork要确保子进程不会是当前进程组首进程,否则之后setsid()两个会话进程号一样,冲突。 ? ? ? ? 2)子进程调用setsid()开启一个新会话 ? ? ? ? ? ? ? ?调用setsid函数的进程成为新的会话的首进程,并与其父进程的会话组和进程组脱离。 ? ? ? ? 3)清除进程的umask 确保守护进程创建文件和目录时拥有所需权限 ? ? ? ? 4)修改进程当前工作目录,一般改为根目录/ (u盘打开,不好卸载) 可选。 ? ? ? ? 5)关闭守护进程从父进程继承而来的所有打开着的fd。 ????????????????不关,0 1 2 标准输入标准输出 标准错误会输出到终端。 ? ? ? ? 6) 关闭文件描述符0 1 2 后,通常会打开 /dev/null,重定向,使用dup2()使所有fd指向这个设备 ? ? ? ? ? ? ? ? 往 /dev/null这个里写的,会被丢弃。? 就不会向我们现在终端输入信息。 ? ? ? ? 核心业务逻辑 使用守护进程每2s向文件写入当前系统时间
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:42:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |