笔记整理—linux进程部分(4)进程状态与守护进程

news2024/11/23 21:05:37

        进程的几种重要状态,就绪态;运行态;僵尸态;等待态(浅度睡眠、深度睡眠);停止态。

        就单核CPU而言,在同一时间只能运行一个进程,但实际上要运行的进程不止一个,系统中又两个链表:就绪态链表和进程链表。

        就绪态,只差cpu调用就能运行的状态。

        运行态,得到cpu时间的就绪进程。

        僵尸态,进程结束,等待父进程回收内存。

        等待态,等待一定条件,满足后就能到达就绪态,现在就算被cpu调用也运行不了。浅度睡眠的时候,进程可以被信号唤醒;深度睡眠等待时,不能被唤醒,只能在满足条件的情况下才会结束睡眠。

        等待态,暂停并不是进程终止,只是被信号暂停了,可以被恢复。

        

        本质上是为了高效的使用CPU,跑不了的就交出CPU进行等待,让CPU去无时无刻的干活。

        

        system函数是原子级操作,本质上作用与eyec+fork实现的功能差不多,只是eyec+fork是非原子级的操作,而system是原子操作。

        原子操作,不会引来竞态,坏处就是连续占用CPU时间过长。不必要的原子操作,影响实时性,在不可避免的使用原子操作时,应尽可能减少占用时间。

        system支持PATH,在环境变量中查找变量。

        进程关系,①无关系;②父子进程关系;③进程组;④会话。无关系进程间是严格分隔的。父子进程,是父fork子。

        进程组(group),组操作,组用户等,是对权限位而言的,进程组由多个进程组成,组长ID为组ID,希望某些进程关联更高,相互能够有交流、共享。

        会话,进程组的组(session)。

        

        守护进程是用户进程,基于应用层,而非应用层。守护进程的特点①daemon守护进程,后台程序(d)。②长期运行(开机到关机)。③与控制台脱离,不予控制台终端绑定。④服务器(server)一直运行可以提供基础服务,如nfs,shell当需要使用时与程序服务器通信,提供服务,一般以守护进程的方式实现。

        常见的守护进程,syslogd斯特日志守护进程提供syslog(日志);cron时间管理如定时执行管理。任意的一个进程都可以成为守护进程,步骤如下:

①子进程等待父进程退出。

②子进程使用setsid创建新会话期,脱离控制台。

③调用chdir将当前工作目录设定到/

④umask设为0,以取消任何文件的权限。

⑤关闭所有文件描述符。

⑥将fd的0、1、2定位到/dev/null。

create_daemon(){
    ......
    pid=fork();
    if(pid<0)
        {
            perror("fork1");
            }
    if(pid>0)
        {
            exit(0);
            }
    if(0==pid)
        {
            pid=setsid();//设为新的会话期,脱离控制台
            if(pid<0)
                {
                    perror(“setsid”);
                    exit(-1);
                    }
            chdir("/");//工作目录设在根目录
            umask(0);
            for(int i=0;i<xxx;i++)//遍历到系统许可的最大文件数目,目的是不让这个进程去一直占用某个文件
                {
                    close(i);//用sysconf()得到xxx是多少,int cnt=sysconf(_SC_OPEN_MAX)
                    }
            open("/dev/null",O_RDWR);//fd=0标准输入
            open("/dev/null",O_RDWR);//fd=1标准输出
            open("/dev/null",O_RDWR);//fd=2标准错误
            //将三个标准指向垃圾堆,此后该进程再无任何标准入/出/err
            }
}

        使用kill -9 xxx使用9号信号(结束),结束xxx守护进程。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2182019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手机实时提取SIM卡打电话的信令声音-(题外、插播一条广告)

手机实时提取SIM卡打电话的信令声音-(题外、插播一条广告) 前言 在去年的差不多这个时候&#xff0c;我们做了一遍外置配件的选型&#xff0c;筛选过滤了一批USB蓝牙配件和type-c转usb的模块。详情可参考《外置配件的电商价格和下载链接的选型.docx》一文&#xff1a;蓝牙电话…

Chainlit集成LlamaIndex并使用通义千问实现和数据库交互的网页对话应用(text2sql)

前言 我在之前的几篇文章中写了如何使用Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用&#xff0c;但是发现Langchain的几种和数据库交互的组件都不够让我满意&#xff0c;虽然已经满足了大部分场景的需求&#xff0c;但是问题还是很多&#xff0c;比如…

Frp服务部署

我这里使用的0.44版本部署如果有其他版本需求范我跟github自行下载 https://github.com/fatedier/frp/releases 相关中文文档可以查看 https://github.com/fatedier/frp/blob/dev/README_zh.md 为了方便我这里使用了同一台服务器部署的 如果需要内网穿透 Frps部署在公网 Frp…

亚洲市场|人工智能对固态硬盘SSD需求影响

随着人工智能(AI)技术的快速发展&#xff0c;对于高效能存储的需求也在日益增长。在亚洲市场中&#xff0c;固态硬盘(SSD)作为关键的数据存储设备&#xff0c;其重要性不言而喻。 扩展阅读&#xff1a; 内存&#xff1a;生成式AI带来全新挑战与机遇 这可能是最清晰的AI存储数…

数学语言符号汇总

&#xff08;任意&#xff09; &#xff08;存在&#xff09; 子集和真子集 一些集合关系符号的Latex写法&#xff1a; 的Latex写法为\not\subset 的Latex写法是\subsetneqq&#xff0c;否定式写法是\subseteqq 1&#xff09;子集 注意&#xff1a;子集只有两种&#xff1…

php email功能实现:详细步骤与配置技巧?

php email发送功能详细教程&#xff1f;如何使用php email服务&#xff1f; 无论是用户注册、密码重置&#xff0c;还是订单确认&#xff0c;电子邮件都是与用户沟通的重要手段。AokSend将详细介绍如何实现php email功能&#xff0c;并提供一些配置技巧&#xff0c;帮助你更好…

C/C++逆向:数据类型识别

在逆向工程中&#xff0c;数据类型识别是理解程序逻辑的重要步骤&#xff0c;因为它直接影响对程序逻辑和功能的理解&#xff0c;识别出数据类型有助于确定变量的含义和函数的行为。在分析恶意软件或者寻找安全漏洞时&#xff0c;识别数据类型能够帮助发现代码中的潜在问题。例…

CTFshow 命令执行 web29~web36(正则匹配绕过)

目录 web29 方法一&#xff1a;include伪协议包含文件读取 方法二&#xff1a;写入文件 方法三&#xff1a;通识符 web30 方法一&#xff1a;filter伪协议文件包含读取 方法二&#xff1a;命令执行函数绕过 方法三&#xff1a;写入文件 web31 方法一&#xff1a;filter伪…

等保测评:企业数字安全的坚实盾牌

1.1 企业数字化转型的浪潮 在当今时代&#xff0c;企业数字化转型的浪潮正以前所未有的速度席卷全球&#xff0c;据IDC预测&#xff0c;到2023年&#xff0c;全球数字化转型支出将达到惊人的2.3万亿美元。这一趋势不仅重塑了企业的运营模式&#xff0c;更对企业的信息安全提出…

redis面试-2024

1、Redis的基本数据结构类型 string、list、set、hash、zet。还有三种特殊类型&#xff1a;Geospatial、Hyperloglog、bitMap。 2、各数据类型对应的场景 3、redis快的原因 *基于内存 内存读写效率远高于磁盘读写&#xff0c;省去磁盘IO操作 *存储形式 Redis作为K-V键值对…

从一到无穷大 #36 Lindorm 宽表:东西互联,南北互联,AI一体

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言索引列存索引全文索引向量索引二级索引 AI赋能时序宽表 LTS&#xff08;Lindorm …

面向MQTT基础物联网网络的Age-of-Information感知的保留消息策略

论文标题&#xff1a; 英文&#xff1a;AoI-aware Retained Message Policy in MQTT-based IoT Networks中文&#xff1a;面向MQTT基础物联网网络的Age-of-Information感知的保留消息策略 作者信息&#xff1a; Youngjun Kim 和 Yeunwoong Kyung工作单位&#xff1a;Youngju…

Unity3D播放GIF图片使用Animation来制作动画

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、下载GIF动图,用PS制作导出帧动画图片👉二、使用Animation制作动画👉三、脚本控制动画播放👉壁纸分享👉总结👉前言 unity播放gif图片,本身是不支持的,但是可以使用其他方法来实现, 1.有一种使用System…

短链接生成-短链接-短网址-短链接生成接口-短链接转换接口-短网址URL生成-短链接地址-短网址-短域名-短链接【快证api】

短网址接口是指用于将长网址缩短为短网址的应用程序编程接口&#xff08;API&#xff09;。以下是关于短网址接口的详细介绍&#xff1a; 一、短网址接口的功能 短网址接口的主要功能是将冗长的网址缩短为简洁的短网址&#xff0c;便于在社交媒体、邮件、短信等渠道中分享和传…

Redis: 主从复制原理

主从复制原理剖析 1 &#xff09;配置 通过下面的从节点的配置项可以开启主从之间的复制功能slaveof 192.16.10.101 6379这里的复制包含全量复制和增量复制 2 &#xff09;主节点的主从配置信息解析 查看主从之间的信息&#xff0c;在主节点上 $ info replication 打印出来的…

系统实施方案(word2024原件参考模板)

软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取&#xff1a;&#xff08;本文末个人名片也可直接获取&#xff09; 软件产品&#xff0c;特别是行业解决方案软件产品不同于一…

【RockyLinux 9.4】安装新版 QQ for Linux(不再是 QQ2008 那种老款了!)

总览 还记得两年之前的时候&#xff0c;当初用的还是那种 QQ2008 一样的 LinuxQQ 啥也干不了&#xff0c;还不如 QQ2008 最近寻思自己装个服务器玩&#xff0c;想下载一个 QQ 用来文件传输&#xff0c;没想到现在的 QQ Linux 这么棒&#xff01; 一、下载 1.下载网址 https…

C语言练手项目之通讯录

1.前言 使用我上期发布的泛型list去制作一个通讯录,实在是太So Easy了!!!(上期代码有改动,可通过我主页介绍的个人git仓库查看!!!) 2.代码截图 1.contact.h 2.main.c 3.contact.c 4.运行结果 3.结语 如果我的文章帮助到你,看到这里不妨点个小赞,加个收藏呗,你的点赞和收藏是我…

2024年9月总结及随笔之丢卡

1. 回头看 日更坚持了639天。 读《软件开发安全之道&#xff1a;概率、设计与实施》更新完成读《软件设计的要素》开更并更新完成读《构建可扩展分布式系统&#xff1a;方法与实践》开更并更新完成读《数据湖仓》开更并持续更新 2023年至2024年9月底累计码字1555996字&#…

Linux-基础篇-磁盘分区,挂载

Linux 分区 原理介绍 Linux 来说无论有几个分区&#xff0c;分给哪一目录使用&#xff0c;它归根结底就只有一个根目录&#xff0c;一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。 Linux 采用了一种叫 “ 载入 ” 的处理方法&#xff0c;…