当前位置: 首页 > news >正文

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

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

        就单核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守护进程。 

相关文章:

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

进程的几种重要状态&#xff0c;就绪态&#xff1b;运行态&#xff1b;僵尸态&#xff1b;等待态&#xff08;浅度睡眠、深度睡眠&#xff09;&#xff1b;停止态。 就单核CPU而言&#xff0c;在同一时间只能运行一个进程&#xff0c;但实际上要运行的进程不止一个&#xff0c;…...

# VirtualBox中安装的CentOS 6.5网络设置为NAT模式时,怎么使用SecureCRT连接CentOS6.5系统?

VirtualBox中安装的CentOS 6.5网络设置为NAT模式时&#xff0c;怎么使用SecureCRT连接CentOS6.5系统&#xff1f; 一、查询 【VirtualBox Host-Only Network】虚拟网卡的网络配置 IP。 1、按键盘上WIN R 组合键&#xff0c;打开【运行】&#xff0c;输入【 ncpa.cpl 】&…...

7-1.Android SQLite 之 SQLiteDatabase 简单编码模板(SQLiteDatabase 使用、SQL 语句编写)

一、SQLiteDatabase SQLite 是一种轻量级的数据库引擎&#xff0c;它非常适合在移动设备&#xff08;例如&#xff0c;Android&#xff09;上使用 SQLiteDatabase 允许应用程序与 SQLite 数据库进行交互&#xff0c;它提供了增删改查等一系列方法 二、SQLiteDatabase 简单编码…...

灰度图像重心(质心)求取算法

1、图像的重心坐标计算 假设我们有一个二维图像,其中 (x, y) 表示图像中每个像素的坐标。I(x, y) 表示图像在 (x, y) 处的亮度(或像素值),通常是灰度值。 图像的重心坐标 (X, Y) 可以通过以下公式计算: X = Σ [x * I(x, y)] / Σ I(x, y) Y = Σ [y * I(x, y)] / Σ I(…...

k8s 1.28.2 集群部署 ingress 1.11.1 包含 admission-webhook

文章目录 [toc]证书创建部署 ingress-controlleringress 验证创建测试 nginx pod创建错误的 ingress 配置创建正确的 ingress 配置 ingress 官方 yaml 文件&#xff1a;deploy.yaml基于官方 yaml 文件做了一些修改 官方的 svc 是 ClusterIP 和 LoadBalancer&#xff0c;我这边把…...

pom web 自动化测试框架分享

这是初版的 pom web 测试框架&#xff0c;目录如下同时部分代码也放在下面&#xff0c;详细代码可前往 github 查看&#xff0c;欢迎大家给出宝贵意见。 |--base | base_page.py&#xff08;封装方法&#xff09; | |--config | allure_config.py&#xff08;测试报告配…...

一些以前使用的linux及shell命令,gnuplot脚本

tar tar -cvzf xxx.tar.gz * -c&#xff0c;--create 创建新的tar文件 -v&#xff0c;--verbose 列出每一步处理涉及的文件的信息&#xff0c;只用一个“v”时&#xff0c;仅列出文件名 使用两个“v”时&#xff0c;列出权限、所有者、大小、时间、文件名等信息 -z&#xff0c…...

Django一分钟:DRF模型序列化器处理关联关系的示例与注意事项

DRF的ModelSerializer序列化器与Django的Model模型紧密映射&#xff0c;本文将通过简单的示例介绍几种处理关联关系的方法。 1. 创建模型和初始数据 创建模型 from django.db import modelsclass Product(models.Model):product_name models.CharField(max_length255)quant…...

Python爬虫selenium框架基本使用

一、安装导入 使用包管理器安装 pip3 install selenium 二、WebDriver工具 要使用这个工具我们需要保证安装了一个浏览器的驱动器。 Python的WebDriver是一个用于自动化Web浏览器操作的工具&#xff0c;它属于Selenium的一部分&#xff0c;特别是Selenium 2.0及以后版本中…...

sql 时间交集

任务&#xff08;取时间交集&#xff09; 前端输入开始时间和结束时间&#xff0c;通过sql筛选出活动开始时间和活动结束时间再开时时间和结束时间有交集的活动 想法&#xff1a; 前后一段时间内遇到了类似取交集的&#xff0c;从网上找到了两种写法&#xff0c;再结合GPT等…...

【深度学习】05-Rnn循环神经网络-01- 自然语言处理概述/词嵌入层/循环网络/文本生成案例精讲

循环神经网络&#xff08;RNN&#xff09;主要用于自然语言处理的。 循环神经网络&#xff08;RNN&#xff09;、卷积神经网络&#xff08;CNN&#xff09;和全连接神经网络&#xff08;FCN&#xff09;是三种常见的神经网络类型&#xff0c;各自擅长处理不同类型的数据。下面…...

基于JAVA+SpringBoot+Vue的电商平台的设计与实现

基于JAVASpringBootVue的电商平台的设计与实现 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345…...

CSS盒模型-怪异盒模型笔记-思维导图-案例等

文章目录 一、盒模型&#xff08;重点&#xff09;二、怪异盒模型三、块级元素和行内元素区别汇总四、块级元素和行内元素的转换(显示方式)||元素的显示和隐藏五、思维导图六、笔记资料 一、盒模型&#xff08;重点&#xff09; 所有HTML元素可以看作盒子。 CSS盒模型本质上是…...

thinkphp6开发的通用网站系统源码

thinkphp6开发的通用网站系统源码。 基于ThinkPHP6框架开发的通用后台权限管理系统&#xff0c;底层采用国内最流行的ThinkPHP6框架&#xff0c; 支持内容管理、文章管理、用户管理、权限管理、角色管理等功能。 代码下载百度网盘...

Junit 5 - 理解Mockito,提高UT 覆盖率

前言 当我是1个3年初级程序员时&#xff0c; 我被面试者问到1个问题&#xff1a; 如何保证你的开发任务交付质量 当我是1个7年开发组长时&#xff0c; 我被面试者问到另1个问题&#xff1a;如何保证你的团队的代码质量&#xff0c; 减少rework。 又若干年后&#xff0c; 我才…...

微服务sentinel解析部署使用全流程

sentinel源码地址&#xff1a; 介绍 alibaba/Sentinel Wiki GitHub sentinel官方文档&#xff1a; https://sentinelguard.io/zh-cn/docs/introduction.html Sprong Cloud alibaba Sentinel文档【小例子】 : Sentinel alibaba/spring-cloud-alibaba Wiki GitHub 目录 1、…...

YOLO11震撼发布!

非常高兴地向大家介绍 Ultralytics YOLO系列的新模型&#xff1a; YOLO11&#xff01; YOLO11 在以往 YOLO 模型基础上带来了一系列强大的功能和优化&#xff0c;使其速度更快、更准确、用途更广泛。主要改进包括 增强了特征提取功能&#xff0c;从而可以更精确地捕捉细节以更…...

机器学习框架(含实例说明)

机器学习框架是用于开发和部署机器学习模型的软件库和工具集。它们提供了一系列的算法、工具和基础设施&#xff0c;帮助开发者更高效地构建、训练和部署机器学习模型。以下是一些主要的机器学习框架及其详细介绍&#xff1a; 1. TensorFlow TensorFlow 是由Google开发的开源…...

vue2与vue3知识点

1.vue2&#xff08;optionsAPI&#xff09;选项式API 2.vue3&#xff08;composition API&#xff09;响应式API vue3 setup 中this是未定义&#xff08;undefined&#xff09;vue3中已经开始弱化this vue2通过this可以拿到vue3setup定义得值和方法 setup语法糖 ref > …...

从源码中学习动态代理模式

动态代理模式 动态代理是 Java 反射&#xff08;Reflection&#xff09;API 提供的一种强大机制&#xff0c;它允许在运行时创建对象的代理实例&#xff0c;而不需要在编译时静态地创建。 Java 提供了两种主要的方式来实现动态代理&#xff1a; 基于接口的动态代理&#xff1a…...

谷歌浏览器完美清除缓存

1.在页面上按下键盘的F12&#xff0c;打开控制台。 2.鼠标放到刷新图标上&#xff0c;点击鼠标右键&#xff0c;选择‘清空缓存并硬性重新加载’。 这样浏览器对网站页面的缓存就彻底被清理干净了。 目前支持该操作方式的浏览器有谷歌和Edge浏览器。 有的浏览器不支持该方式操…...

《如何高效学习》

有道云笔记 第一部分 整体性学习策略 结构 结构就像思想中的一座城市&#xff0c;有很多建筑物&#xff0c;建筑物之间有道路相连&#xff0c;有高大而重要的与其他建筑有上百条路相连&#xff0c;无关紧要的建筑只有少数泥泞的小道与外界相通。 建立良好的知识结构就是绘制…...

阿里云ACP认证考试题库

最近有好些同学&#xff0c;考完阿里云ACP了&#xff0c;再来跟我反馈&#xff1a;自己花700买的阿里云ACP题库&#xff0c;结果答案是错的&#xff01; 或者考完后发现&#xff0c;买的阿里云ACP题库覆盖率只有50%&#xff01; 为避免大家继续踩坑&#xff0c;给大家分享一个阿…...

学习经验分享【38】YOLOv11解读——最新YOLO版本

YOLO算法更新速度很快&#xff0c;已经出到V11版本&#xff0c;后续大家有想发论文或者搞项目可更新自己的baseline了。后续将改进YOLOv11算法&#xff0c;有需要的朋友可关注&#xff0c;我会持续进行更新。 YOLO11是Ultralytics YOLO系列实时目标检测器的最新迭代版本&#x…...

电商选品/分析| 亚马逊常见插件爬虫实战之-helium插件

说明 插件爬虫相当于二次爬虫,二次加工信息,因为大部分插件信息也是从正规网上去获取数据,这次列举helium插件爬虫案例,其他插件爬虫也是类似这个方式. 需求 1、⽤⾕歌浏览器&#xff0c;下载chrome extension&#xff1a;“Helium 10 2、登录helium10 3、打开 打开Amazo…...

遇到慢SQL、SQL报错,应如何快速定位问题 | OceanBase优化实践

在数据库的使用中&#xff0c;大家时常会遇到慢SQL&#xff0c;或执行出错的SQL。对于某些SQL问题&#xff0c;其错误原因显而易见&#xff0c;但也有不少情况难以直观判断。面对这类问题&#xff0c;我们应当如何应对&#xff1f;如何准确识别SQL错误的根源&#xff1f;是否需…...

postgresql僵尸进程的处理思路

简介 僵尸进程&#xff08;zombie process&#xff09;是指一个已经终止但仍然在进程表中保留条目的进程。正常情况下&#xff0c;当一个进程完成执行并退出时&#xff0c;操作系统会通过父进程调用的wait()或waitpid()系统调用来收集该子进程的退出状态。如果父进程未及时调用…...

Springboot 练习

Springboot练习——分页查询 Emp类 package com.wzb.pojo20240930;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.time.LocalDate; import java.time.LocalDateTime;Data NoArgsConstructor AllArgsConstructor public…...

ISA-95制造业中企业和控制系统的集成的国际标准-(3)

ISA-95 文章目录 ISA-95ISA-95设备对象模型一、设备对象模型是什么&#xff1f;二、设备对象模型常见组织 ISA-95设备对象模型 ISA-95 标准中的设备对象模型侧重于表示制造和生产过程中使用的物理和逻辑设备及资源。 一、设备对象模型是什么&#xff1f; 设备对象模型提供了…...

MATLAB中图形导出功能的详细使用指南

在MATLAB中&#xff0c;图形的导出是一个常见的需求&#xff0c;无论是为了报告、演示还是进一步的分析。MATLAB提供了多种方式来导出图形&#xff0c;包括使用图形用户界面(GUI)的工具&#xff0c;以及通过编程方式使用特定的函数。本文将详细介绍如何在MATLAB中导出图形&…...

网站seo怎样做/平台营销

创建统一管理的&#xff0c;具备灵活性的云原生生产部署来部署一个个性化的数据库即服务(DBaaS)。-- Jonathan S. Katz通过在 Kubernetes 上运行 PostgreSQL 数据库&#xff0c;你能创建统一管理的&#xff0c;具备灵活性的云原生生产部署应用来部署一个个性化的数据库即服务为…...

深圳网站建设10086/qq群引流推广平台免费

我们踩着的只是两个脚印&#xff0c;我们看到的只是四角的天空。究竟是什么决定了我们能不能找到工作&#xff0c;找到什么样的工作。以下引用的文献&#xff0c;皆来自《社会学与中国社会》中的收录。这些被收录在这里的文献&#xff0c;好像是作者专门为收集到此书时加工的&a…...

pc网站建设的三大条件/营销型网站建设题库

【题目链接】:http://hihocoder.com/problemset/problem/1295 【题意】 【题解】 可以在O(N)的复杂度内求出1..N里面的所有素数; 当然受空间限制,N可能也就是几百万的样子吧; 再低一点的话用朴素的筛法都能过了&#xff1b; 它的思路主要是; 抓住每个合数的最小的质因数…...

自考网站建设与管理资料/公司软文推广

原理 高斯滤波是对整幅图像进行加权平均的过程&#xff0c;每一个像素点的值&#xff0c;都由其本身和邻域内的其他像素值经过加权平均后得到。其滤波核的值由如下公式得到&#xff08;用当前点与中心点的欧式距离的平方代替下面的&#xff08; x2y2x^2y^2x2y2&#xff09;&am…...

金华网站开发公司/各大网站收录查询

RabbitMQ是消息队列。之前学过的队列queue&#xff1a;线程queue&#xff08;threading queue&#xff09;&#xff0c;只是多个线程之间进行数据交互。进程queue&#xff08;processing queue&#xff09;&#xff0c;只是父进程与子进程进行交互。两个独立的程序之间进行交互…...

加载其他网站图片seo/软文广告怎么写

第一步&#xff1a;下載微信支付sdk下載網址&#xff1a;https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter11_1這是微信支付商戶平台頁面“公眾號支付”模塊里面的sdk&#xff0c;app支付的sdk是不能用的。下載好sdk之后&#xff0c;真正需要的文件有5個&#xff0c…...