5.2 进程

system命令创建一个新的进程然后有这个新的进程然后再执行相关的命令,层数多鸡肋

缺点:system层数太多,往往用fork()

优点:可以进行跨语言调用,或者是脚本完成,可以用system

fork()函数父进程是返回子进程的fd,子进程是返回0。fork()创建的子进程完全复制父进程的(除了pidppid),但是在创建以后单独处理的部分就不一样了

创建进程是因为一个进程崩了不希望影响另一个,解耦。打开一个游戏,fork(),地图,音乐等单独分出去做相关功能,理解这个意思,因为游戏一般是耦合一个崩了就没法玩了不如全崩

fork进行立即的逻辑复制父进程,实际上物理写时复制,也就是因为很多的东西都是相同的,但是很多东西可能不会用到,所以说只有在需要用到的时候才会在物理上复制父进程的数据。

先fork再打开的文件不会共享读写位置,那么这个时候就是有两个文件描述符,其中存放读写指针,然后指向同一个inode节点

!!fork()在进行复制的时候是复制全部的信息,所以说如果没有能够清空缓冲区的时候就会导致将fork以前的内容也进行复制。

往往是fork()和exec()结合使用fork以后再用exec丢弃父进程的东西进行切换进程

fork()函数如果fork()两次的话是三个进程也可能是四个!

wait和witpid用来被父进程清理死掉的子进程的相关资源,是一个阻塞进程,只能收一个。

进程结束的分为主动结束和被动结束,return和exit和_exit(不收尸就走人),和ctrl+c,ctrl+/与kill发送信号原理相同abort一样(虽然主动调用但是信号被动实现)

pipe函数在父子进程之间本身不就是创建两个管道??????????

父进程一般都会给子进程收尸,前提时父进程退出,借助wait函数和waitpid收尸,他们是阻塞函数,但只能收一个,如果确定没有需要收的了就返回别的值。子进程的return是返回给给他收尸的父进程。当然waitpid也可以不阻塞监控对应的fd

进程组组id以第一个进程id作为组id,但是组长死了组id也不会变。

子进程和父进程是在同一个组,如果进行setpgid以后子进程自立门户,就有了两个组

建立一个会话有一个前台进程组(fork)和多个后台进程组,只有前台进程组可以接收键盘信号,这也就是为什么ctrl+c不能停止后台进程组。tip:后台进程组可以接收信号像是kill命令

fg后台放前台操作结束可以

进程组依赖于会话组,会话组死了,进程组就over

所以说需要把一直运行在云服务器的进程设置为守护进程放在云服务器上

框架:在进程中创建进程

system执行命令,就是层数太多,往往用来执行脚本或者其他语言命令

fork真儿子,除了名字,其他内容和老爹没啥区别,可以根据名字对父子做不同的处理,也可以一家子一块做相同的事情。

exec别人家的儿子,就只要你老爹的名字pid不变,还代替你老爹的位置原父进程结束,其他的都不稀罕不要。

结束进程:

正常结束和异常结束

收拾东西:wait和waitpid函数

前后台进程&

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

跨平台终端软件——quardCRT

作为一个技术栈比较复杂的程序,工作常常会在windows/linux/macos等不同的平台切换开发,开发过程中最常用的就是终端工具了,一个趁手的终端可以成倍的提高工作效率,因此我一直希望能找个一个跨平台体验一致无缝切换的终端软件&…

Unity Audio Filter 入门

概述: 如果你在你项目中需要一些特殊的声音效果,那这部分声音过滤器的部分一定不要错过喔,让我们来学习这部分的内容吧! 这部分理论性比较强,认真看我的注解哈,我尽量解释的易懂一点。 Audio Chorus Filter…

街道征迁项目档案管理系统

街道征迁项目档案管理系统是一个用于管理街道征迁项目档案的软件系统。该系统的主要功能包括档案录入、档案存储、档案检索、档案共享等。 系统的用户可以通过该系统录入征迁项目相关的档案信息,包括项目名称、征迁范围、土地面积、征迁补偿费用等。同时&#xff0c…

vue本地调试devtools

一、谷歌浏览器加载扩展程序 二、把解压的压缩包添加即可,重启浏览器 三、启动前端本地项目,即可看到Vue小图标

AD | Altium Designer(原理图设计、电路仿真、PCB绘图)汉化版

Altium Designer(原理图设计、电路仿真、PCB绘图) 通知公告 Altium Designer(AD)是一种功能强大的电子设计自动化(EDA)软件。它主要用于设计和开发电子产品,如电路板(PCB)、集成电路(IC)和嵌入式系统。AD提供了完整的设计工具套件,包括原理图设计、PCB布局、仿真、设…

ICode国际青少年编程竞赛- Python-1级训练场-识别循环规律1

ICode国际青少年编程竞赛- Python-1级训练场-识别循环规律1 1、 for i in range(4):Dev.step(6)Dev.turnLeft()2、 for i in range(3):Dev.turnLeft()Dev.step(2)Dev.turnRight()Dev.step(2)3、 for i in range(3):Spaceship.step(5)Spaceship.turnLeft()Spaceship.step(…

互联网轻量级框架整合之MyBatis底层运转逻辑

MyBatis运转过程中主要步骤有两个,其一读取配置文件缓存到Configuration对象,用于构建SqlSessionFactory;其二是SqlSession的执行过程,这其中SqlSessionFactory的构建过程相对很好理解,而SqlSession的执行过程就相对复…

LT6911GX HDMI2.1 至四端口 MIPI/LVDS,带音频 龙迅方案

1. 描述LT6911GX 是一款面向 VR / 显示应用的高性能 HDMI2.1 至 MIPI 或 LVDS 芯片。HDCP RX作为HDCP中继器的上游,可以与其他芯片的HDCP TX配合使用,实现中继器功能。对于 HDMI2.1 输入,LT6911GX 可配置为 3/4 通道。自适应均衡功能使其适合…

vue3+vite+js 实现移动端,PC端响应式布局

目前使用的是vue3vite,没有使用ts 纯移动端|PC端 这种适用于只适用一个端的情况 方法:amfe-flexible postcss-pxtorem相结合 ① 执行以下两个命令 npm i -S amfe-flexible npm install postcss-pxtorem --save-dev② main.js文件引用 import amfe-f…

FreeRTOS信号量

信号量简介 def 1: 信号量是一种解决问题的机制,可以实现共享资源的访问 信号量浅显理解例子: 空车位: 信号量资源(计数值) 让出占用车位: 释放信号量(计数值) 占用车…

LT6911UXB HDMI2.0 至四端口 MIPI DSI/CSI,带音频 龙迅方案

1. 描述LT6911UXB 是一款高性能 HDMI2.0 至 MIPI DSI/CSI 转换器,适用于 VR、智能手机和显示应用。HDMI2.0 输入支持高达 6Gbps 的数据速率,可为4k60Hz视频提供足够的带宽。此外,数据解密还支持 HDCP2.2。对于 MIPI DSI / CSI 输出&#xff0…

jvm 马士兵 01

01.JVM是什么 JVM是一个跨平台的标准 JVM只识别class文件,符合JVM规范的class文件都可以被识别

知乎广告开户流程,知乎广告的优势是什么?

社交媒体平台不仅是用户获取知识、分享见解的场所,更是品牌展示、产品推广的重要舞台。知乎作为国内知名的知识分享社区,以其高质量的内容生态和庞大的用户基础,成为了众多企业进行广告投放的优选之地。云衔科技通过其专业服务,助…

数字身份管理:Facebook如何利用区块链技术?

随着数字化进程的加速,个人身份管理已成为一个关键议题。在这方面,区块链技术正在逐渐展现其巨大潜力。作为全球最大的社交媒体平台,Facebook也在积极探索和应用区块链技术来改进其数字身份管理系统。本文将深入探讨Facebook如何利用区块链技…

<Linux> 权限

目录 权限人员相对于文件来说的分类更改权限文件的拥有者与所属组 权限 权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中的每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定文件…

Node私库Verdaccio使用记录,包的构建,推送和拉取

Node私库Verdaccio使用记录,包的构建,推送和拉取 Verdaccio是一个轻量级的私有npm代理注册中心,它可以帮助你在本地搭建一个npm仓库,非常适合企业内部使用。通过使用Verdaccio,你可以控制和缓存依赖包,提高…

政安晨:【Keras机器学习示例演绎】(二十七)—— 利用 NNCLR 进行自我监督对比学习

目录 简介 自我监督学习 对比学习 NNCLR 设置 超参数 加载数据集 增强 准备扩增模块 编码器结构 用于对比预训练的 NNCLR 模型 预训练 NNCLR 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望…

DRF限流组件源码分析

DRF限流组件源码分析 开发过程中,如果某个接口不想让用户访问过于频繁,可以使用限流的机制 限流,限制用户访问频率,例如:用户1分钟最多访问100次 或者 短信验证码一天每天可以发送50次, 防止盗刷。 对于…

Spring - 7 ( 13000 字 Spring 入门级教程 )

一:Spring Boot 日志 1.1 日志概述 日志对我们来说并不陌生,我们可以通过打印日志来发现和定位问题, 或者根据日志来分析程序的运行过程,但随着项目的复杂度提升, 我们对日志的打印也有了更高的需求, 而不仅仅是定位排查问题 比如有时需要…

【LDAP】LDAP 和 AD 介绍及使用 LDAP 操作 AD 域

LDAP 和 AD 介绍及使用 LDAP 操作 AD 域 1.LDAP入门1.1 定义1.2 目录结构1.3 命名格式 2.AD 入门2.1 AD 定义2.2 作用2.3 AD 域结构常用对象2.3.1 域(Domain)2.3.2 组织单位(Organization Unit)2.3.3 群组(Group&#…
最新文章