守护进程 || 精灵进程

news2024/11/16 6:35:09

目录

守护进程(deamon) || 精灵进程

特点

什么是前台进程组

把自己写的服务器deamon

deamon代码


守护进程(deamon) || 精灵进程

特点

01. 他的PPID是1(附件特征)
02. COMMAND --- 称为进程启动的命令
03. TIME            --- 进程启动时长的问题
04.  UID             --- 是谁启动的
(ls-n / ls-l 就可以看见用户的UID和我们看见的用户名是对应的,就像之前文件名和inode的映射一样)
05. STAT             --- 状态
06.  TPGID          --- 当前进程组和终端相关的信息
(-1 就是说这个进程和中单没有任何关系,具体数字就是和终端有关)
07.  TTY              --- 就是代表是哪一个终端
08.  PGID            --- 当前进程所属的进程组 

(一旦当前shell要构建一个任务,起了三个进程,第一个进程一般都是进程组的组长) 

所以jobs查看任务的时候只有一个,因为他们三是一个组的

09.  SID               --- 当前进程的会话id

什么是前台进程组

任何时刻,只能有一个前台进程组,当我们登录windows,就肯定要给我们提供一个图形化界面,在linux下就需要(前台进程组(可以只有一个进程))给我们加载bash(一个任务)。

这就是为什么我们登录的时候要有shell,因为登录是系统给我们形成一个会话,这个绘画内部的绘画画手的进程组就是我们的bash。 

如果我们把后台进程提到前台 

我们的shell就无法运行了,是因为只能有一个前台进程组,bash就会自己把自己投递到后台了,所以命令行解释器就用不了了。 

所以我们现在就可以说是:

PS:如果用的时间久了,当前会话占的资源比较多,所以电脑可能会比较卡,所以退出登入,注销一下,注销就是把这个会话之前申请的资源全部释放,然后重新登录,这就是为什么卡的时候说注销一下就可以。(和重启类似)(但有些任务不一定通过注销能解决) 

守护进程/精灵进程
所以,我们的网络服务器就不能属于这个会话内,这样就会受这个会话,用户登录和注销的影响(不一定会退出),所以有网络服务的时候,就应该脱离这个会话,让他在计算机里面形成一个新的会话(让他自成进程组,自成新会话)。这样的进程就称为守护进程/精灵进程。
编写守护进程 setsid()-- 将调用进程设置成独立的会话 

/dev/nnull -- linux 下的垃圾桶/信息黑洞就是往里面读写的数据都会被直接丢弃。

把自己写的服务器deamon

就相当于服务部署到了linux当中

哪怕是自己的xshell关了也可以client继续用

那就只能用信号杀了(一般守护进程的命名是d结尾)

deamon代码

daemon(是否更换当前路径,是否关闭0,1,2)系统带的 但一般自己写好点nohup(就是不挂起)(变成后台进程)

a.out循环打印

nohup.out一直在增大,打印日志信息,就说明程序一直在运行 

发现一直在执行,自己自成进程组,自己是组长,但是所属会话依旧是30244(bash),所以这个进程依旧是属于在本绘画内部形成了一个并非守护进程,但是非常像守护进程的了,但是他设置了nohup,不让他受用户登入注销的影响,即这个进程已经属于我们的后台进程了 

 当我们用户退出再进去的时候

 之前那个bash不存在了,PPID也是1了。说明一旦用户退出了,虽然自己不是会话的画手,但是他依旧已经是一个独立的绘画了,这样的我们也称为守护进程化。(已经是一个孤儿进程了)。

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

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

相关文章

[ vulnhub靶机通关篇 ] Empire Breakout 通关详解

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

应用层协议 HTTP HTTPS

目录 应用层 再谈 "协议" 序列化和反序列化 关于 json库 request序列化 request反序列化 response序列化 response反序列化 PS:命令宏 HTTP协议 认识URL urlencode和urldecode HTTP协议格式 HTTP请求 HTTP响应 请求方法 ​编辑 HT…

使用Element-UI展示数据(动态查询)

学习内容来源:视频P4 本篇文章进度接着之前的文章进行续写 精简前后端分离项目搭建 Vue基础容器使用 目录选择组件修改表格组件修改分页组件增加后端接口前端请求数据接口页面初始化请求数据点击页码请求数据选择组件 在官方文档中选择现成的组件,放在页…

XSS漏洞分类

XSS漏洞分类XSS分类反射型XSS反射XSS案例存储型XSS存储型XSS实操XSS分类 XSS根据类型和利用手法的不同,主要分为三大类: 反射型XSS存储型XSSDOM型XSS 反射型XSS 反射型XSS又称为非持久型XSS,是现在最容易出现的一种XSS漏洞。用户在请求某…

零死角玩转stm32初级篇4-初识 STM32 库

本篇博文目录:一.STM32库开发的相关概念知识1.什么是 STM32 库?2.CMSIS 标准二.STM32 结构及库层次关系1.库目录,文件简介2.CMSIS3.STM32F10x_StdPeriph_Driver4.STM32F10x_StdPeriph_Template5.库各文件间的关系三.使用库帮助文档1.常用官方资料2.官网手…

Math类详解与Random类、三种随机数生成方式(java)

文章目录📖前言:🎀认识Random类🎀三种随机数生成方式🎀Math类的用途🎀Math类的方法📖前言: 本篇博客主要以介绍Math类的常用方法及认识Random类,及三种随机数生成方式 …

Docker学习(二十)什么是分层存储?

目录1.简介2.什么是 Union Mount?3.分层介绍1)lowerdir 层(镜像层)2)upperdir 层(容器层)3)merged 层4.工作原理1)读:2)写:3&#xff…

Java位集合之BitMap,BitSet解析

文章目录1 Java位集合1.1 Bit-Map1.1.1 简介1.1.2 添加1.1.3 清除1.1.4 查找1.2 Bitmap应用1.2.1 快速排序1.2.2 快速去重1.2.3 快速查找1.3 BitSet1.4 Bloom Filters1.4.1 简介1.4.2 BloomFilter 流程1 Java位集合 前几天刚学习了Redis中位操作命令,今天顺便学下j…

【unity】rts engine 6 放置并建造建筑;

一 放置并建造建筑 GameManager -> Essential -> BuildingExtension 查看 building placement building position y offset Y轴偏移,建筑离地距离,可0.1 terrain max distance 放置建筑与允许地形的最大距离,可1 placable terrain …

linux基本指令和权限

目录 一.shell命令以及运行原理 二.Linux常用指令 1. ls 指令 2. pwd命令 3.cd指令 4. touch指令 5.mkdir指令(重要) 6.rmdir指令 && rm 指令(重要) 7.man指令(重要) 8.cp指令(重要&…

AI_Papers周刊:第四期

2023.02.28—2023.03.05 Top Papers Subjects: cs.CL 1.Language Is Not All You Need: Aligning Perception with Language Models 标题:KOSMOS-1:语言不是你所需要的全部:将感知与语言模型相结合 作者:Shaohan Huang, Li …

[C++]vector模拟实现

目录 前言: 1. vector结构 2. 默认成员函数 2.1 构造函数 无参构造: 有参构造: 有参构造重载: 2.2 赋值运算符重载、拷贝构造(难点) 2.3 析构函数: 3. 扩容 3.1 reserve 3.2 resize…

Matlab小波去噪——基于wden函数的去噪分析

文章目录一、问题描述二、代码问题1:原始信号加6分贝高斯白噪声问题2:确定合适的小波基函数问题3:确定最合适的阈值计算估计方法问题4:确定合适的分解层数问题5:实际信号去噪问题6:对比三、演示视频最后一、…

团队死气沉沉?10种玩法激活你的项目团队拥有超强凝聚力

作为项目经理和PMO,以及管理者最头疼的是团队的氛围和凝聚力,经常会发现团队死气沉沉,默不作声,你想尽办法也不能激活团队,也很难凝聚团队。这样的项目团队你很难带领大家去打胜仗,攻克堡垒。但是如何才能避…

Python|贪心|数组|二分查找|贪心|数学|树|二叉搜索树|在排序数组中查找元素的第一个和最后一个位置|计数质数 |将有序数组转换为二叉搜索树

1、在排序数组中查找元素的第一个和最后一个位置(数组,二分查找) 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 […

第十四届蓝桥杯三月真题刷题训练——第 2 天

目录 题目1:奇数倍数 代码: 题目2:求值 代码: 题目3:求和 代码: 题目4:数位排序 代码: 题目1:奇数倍数 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即…

收银系统的设计与实现

技术:Java、JSP等摘要:随着销售行业竞争的日益激烈,收银系统的引入显得极其重要。收银系统不但可以提高商品存储管理的工作效率,而且可以有效减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度&#xff0c…

Java虚拟机的运行时数据区-go语言实现

Java虚拟机的运行时数据区 Java虚拟机把存放各式各样数据的内存区域叫作运行时数据区。运行时数据区分成两类: 一类时多线程共享的,一类时线程私有的。多线程共享的数据在Java虚拟机启动时创建好,在Java虚拟机退出时销毁。线程私有的运行时…

序列号和反序列化--java--Serializable接口--json序列化普通使用

序列化和反序列化序列化和反序列化作用为什么需要用途Serializable使用serialVersionUID不设置的后果什么时候修改Externalizable序列化的顺序json序列化序列化和反序列化 序列化:把对象转换为字节序列的过程称为对象的序列化。 反序列化:把字节序列恢复为对象的过…

【Go语言学习】安装与配置

文章目录前言一、Go语言学习站二、安装与配置1.安装2.环境变量配置3.Gland编辑器安装与配置Hello, World!总结前言 Go语言特性 Go,又称为 Golang,是一门开源的编程语言,由 Google 开发。Go 语言的设计目标是提供一种简单、快速、高效、安全…