守护进程

Linux:守护进程解析、如何实现守护进程 1、守护进程: 守护进程也称精灵进程(Daemon),是运行在后台的⼀一种特殊进程。它独立于控制终端且周期性地执行某种任务或等待处理某些发生的事件。守护进程是⼀一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任   务。比如,作业规划进程crond等。Linux系统启动时会启动很多系统 阅读详情
守护进程

是linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以d结尾的名字。例如:预读入缓输出机制的实现;ftp服务器;nfs服务器


特点
  • linux后台服务进程
  • 独立于控制终端
  • 周期性的执行某种服务
  • 不受用户登录或注销的影响
  • 一般采用以d结尾的名字

进程组,

是一个或多个进程的集合,每个进程都属于一个进程组,引入进程组是为了简化对进程的管理。当父进程创建子进程时,默认子进程与父进程属于一个进程组。


会话
  • 一个会话是一个或个进程组的集合。
  • 创建会话的进程不能是进程组组长。
  • 创建会话的进程成为一个进程组的组长进程,同时也成为会话的会长。
  • 新创建的会话丢弃原有的控制终端。
  • 建立新会话时,先调用fork,父进程终止,子进程调用setsid函数

可以通过ps ajx来查看进程组ID和会话ID


创建守护进程

创建基本步骤

1.fork子进程,父进程退出

  • 子进程继承了父进程的进程组ID,但具有一个新的进程ID,这就保证了子进程不是一个进程组的组长ID,这是为调用setsid函数提供了必要的前提条件

2.子进程调用setsid函数创建新会话
调用这个函数之后

  • 该进程成为新会话的首进程,是会话的会长
  • 成为一个新进程组的组长进程,是进程组组长
  • 不受控制终端的影响

3.改变当前工作的目录chdir --------非必须

4.重设文件掩码 --------非必须

  • 子进程会继承父进程的掩码
  • 增加子进程程序操作的灵活性
  • umask(0000)

5.关闭文件描述符 --------非必须

  • 守护进程不受控制终端的影响所以可以关闭,以释放资源
  • close();

6.执行核心工作

  • 守护进程的核心代码逻辑

例子

编写一个守护进程,每隔2s钟获取一次系统时间,并将这次时间写入磁盘文件.

分析:首先要按照步骤创建一个守护进程
每隔2s:使用setitimer函数设置时钟,该时钟发送的是SIGALRM信号,
信号操作:注册信号处理函数,signal或者sigaction,还有一个信号处理函数
获取一次系统时间:time函数的使用,ctime函数的使用
写入磁盘文件:文件操作哦函数:open write close
//创建守护进程
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<unistd.h>
#include<signal.h>
#include<sys/time.h>
#include<time.h>

void myfunc(int signo){

	//打开文件
	int fd=open("mydemon.log",O_RDWR | O_CREAT | O_APPEND,0755);
	if(fd<0){
		return;
	}
	//获取当前系统时间
	time_t tm;
	time(&tm);

	char *tme=ctime(&tm);
	//将时间写入文件
	write(fd,tme,strlen(tme));

	close(fd);

	return;
}
int main()
{
  //父进程fork子进程,父进程推出
  pid_t pid=fork();
  if(pid<0 || pid>0)
  {
	  exit(1);
  }

  //子进程调用setsid函数创建会话
  setsid();
  //改变当前的工作目录
  chdir("/home/zs/log");
  //改变文件掩码
  umask(0000);//0002,0022
  //关闭标准输入,输出和错误输出文件描述符
  close(STDIN_FILENO);
  close(STDOUT_FILENO);
  close(STDERR_FILENO);
  //核心操作
  //注册信号处理函数
  struct sigaction act;
  act.sa_handler=myfunc;
  act.sa_flags=0;
  sigemptyset(&act.sa_mask);
  sigaction(SIGALRM,&act,NULL);
   
  //设置时钟
  struct itimerval tm;
  tm.it_interval.tv_sec=2;
  tm.it_interval.tv_usec=0;
  tm.it_value.tv_sec=3;
  tm.it_value.tv_usec=0;
  setitimer(ITIMER_REAL, &tm, NULL);

  while(1){
	  sleep(1);
  }
}
浅析Linux守护进程、守护进程的创建步骤 何为守护进程 、进程组 / 组长进程 / 会话 / 会话首进程 、守护进程的创建步骤 、创建守护进程程序示例 阅读详情

相关推荐

python刷B站播放量

首先,我们要知道B站播放量计算方法:不同的IP只能算一次,如果点一下就关掉,会出现播放完成度很低的情况,反而不利。 所以我们要做的是:不停换IP地址打开视频播放页,最好能看完视频。 下面是实现方法: 获取某一个网页上的所有代理IP,返回一个IP列表: def get_ip_list(url, headers): web_data = requests.get(url, headers=headers) soup = BeautifulSoup(web_data.text, 'lxml

HGGshiwo的博客 1万+

守护进程及守护进程输出

1 创建一个输出程序 2 创建一个守护进程 1 创建一个输出程序 守护进程不与终端联系,所以,需要另外创建一个程序用于输出。 也可以直接使用/bin/echo ----- example_daemon_help.cc #include <stdio.h> int main(int argc, char** argv) { ...

weixin_34209406的博客 446

Coze视频混剪智能体工作流,1小时制作100条带货混剪视频,全平台通用

摘要:本文介绍如何利用Coze智能体工作流一键生成全平台带货混剪视频。该工作流支持双视频素材查重处理、智能文案重塑、画面重组等核心功能,通过多节点协同实现批量生产。系统可自动下载视频、提取字幕、生成新脚本,并完成剪辑合成,支持飞书表格批量操作。该工作流已在iThinkAi扣子团队空间开放复制使用,帮助用户高效制作爆款带货视频。

ai979290的博客 1084

linux 守护进程与用&结尾的后台运行程序有什么区别

默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的: zsm@wilburUbun:~/application/zookeeper-3.4.8/bin$ ./zkServer.sh start & [1] 21304 zsm@wilburUbun:~/ap

pursuer211的专栏 6065

SRC漏洞挖掘实战指南:从零入门到月入过万的网络安全副业

网络安全的核心在于识别和修复系统缺陷,其中逻辑漏洞与信息泄露是常见的安全风险。其原理在于应用程序在业务逻辑设计或数据处理过程中存在缺陷,导致未授权访问或敏感数据暴露。掌握这些技术对于构建安全的应用体系至关重要,不仅能有效防范攻击,也为安全研究人员提供了将技术能力变现的合法途径。在漏洞赏金(Bug Bounty)和SRC(安全应急响应中心)等应用场景中,白帽子通过系统化的测试方法,挖掘此类漏洞,既能获得经济回报,又能积累宝贵的实战经验。本文聚焦于逻辑漏洞与信息泄露的实战挖掘技巧,为初学者提供清晰的入门路径和效

weixin_28568819的博客 346

STM32读取BQ40Z50的数据

TI电池管理芯片BQ40Z50,通信协议是SMBUS,类似IIC,速率要求10-100KHz   用的STM32F103的硬件IIC读取电池的各种数值,源代码如下: ​ #include "iic.h" #include "stdio.h"  //***************************************************** // IIC2初始化函数:初始化ST...

百步登峰的博客 1万+

守护进程Supervisor 安装与配置

1, Supervisor是Linux系统中常用的进程守护程序。如果队列进程queue:work意外关闭,它会自动重启启动队列进程。在Ubuntu安装Supervisor 非常简单: sudo apt-get install supervisor 2, Supervisor配置文件通常存放在/etc/supervisor/conf.d目录,在该目录中,可以创建多个配置文件指示Supervisor...

进无止境 719

【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(3):Agent请求和响应

CangjieMagic框架:使用华为仓颉编程语言编写,专门用于开发AI Agent,支持鸿蒙、Windows、macOS、Linux等系统。这篇文章剖析一下 CangjieMagic 框架中的 AgentRequest 和 AgentResponse。

九丘教育官方博客 1475

关于GOGS的钩子和守护进程

Gogs是什么呢?官方的说法是:Gogs 是一款极易搭建的自助 Git 服务。 那么看完了之后,依然一头雾水,这说的是啥????? 我们知道使用git的时候,远程库可以用github,或者自己Linux服务器安装git以后,创建一个自己的仓库,无论是github的远程仓库还是我们自己在linux上创建的仓库(相对于本地计算机来说,其实都相当于远程仓库),都可以在本地计算机上安装客户端进行远程克...

北地程序星域※巨猿星 3517

Argoverse2数据集保姆级导入教程:从下载到预处理全流程解析

本文详细解析了Argoverse2数据集的完整导入流程,从环境配置、数据下载到预处理和高效加载策略。作为自动驾驶领域的标杆数据集,Argoverse2提供多模态传感器数据和高精地图信息,帮助研究者快速搭建数据处理流水线。文章包含实用代码示例和性能优化技巧,特别适合自动驾驶算法开发者参考。

weixin_29035405的博客 331

在树莓派4B上基于NCNN框架部署YOLOv8的实战教程

摘要:本文详细介绍了在树莓派4B上基于NCNN框架部署YOLOv8目标检测模型的完整流程。从PyTorch模型转换为NCNN格式,到树莓派环境配置(OpenCV和NCNN编译),再到C++代码实现与优化,涵盖模型加载、推理和绘图等核心功能。测试结果显示,树莓派4B上可实现约2 FPS的检测速度,Windows平台达6~7 FPS。文章还提供了量化模型、多线程优化等实用建议,并附常见问题解答,为边缘设备部署轻量化目标检测提供了可行方案。(149字)

m0_64661770的博客 595

Linux下的守护进程

一、什么是守护进程1、守护进程的引入 在现实生活中, 许多大型的软件或服务器必须保证7*24小时(一周7天,一天24小时)无障碍的运行,例如淘宝网、百度搜索引擎、支付宝等等,那么像这样一种要一直运行的程序怎么实现呢?究其本质其实就是我们的守护进程。2、守护进程的定义 守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事

snow_5288的博客 9435

基于 YOLOv26 的食品包装缺陷检测系统:智能视觉质检方案

本文提出了一种基于YOLOv26深度学习的食品包装缺陷智能检测系统。该系统能够自动识别多种常见包装缺陷,包括密封不良、破损、污染、标签错误等8类问题。相比传统人工检测方法,该系统具有高精度、多类别分类、实时推理等优势。文章详细介绍了系统架构,包含数据采集、预处理、YOLOv26检测模型和后处理四个核心模块,并提供了完整的环境配置和数据处理代码实现。该系统为食品包装行业提供了一种高效、准确的智能视觉质检解决方案。

一键难忘的博客 681

守护进程详解

一、普通进程运行观察 代码示例: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> int main(int argc, char *const *argv) { printf("进程开始执行!\n"); while (1) { sleep(1); //休眠1秒 //printf("休息1秒,

芒种、的博客 5321

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

< Linux > 守护进程

目录 1、守护进程 守护进程的概念 进程组和会话 2、守护进程化的方式 TCP网络程序(守护进程化) TCP网络程序(守护进程化)gitee地址 daemon创建守护进程 nohup命令

bit_zyx的博客 3928

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Linux守护进程

Linux 守护进程是一种在后台运行的特殊进程,它们独立于控制终端,周期性地执行任务或提供服务。创建守护进程需要遵循特定的流程,包括创建子进程、创建新会话、改变当前目录、重设文件权限掩码和关闭文件描述符。守护进程可以通过systemctlservice或systemd命令来管理。

如无必要,勿增实体。 2366

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

守护进程编程

Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。具有以下特点:守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行;守护进程一般都以root用户权限运行,因为要使用某些特殊的端口(1-1024)或者资源;

qq_73050400的博客 1135

【Linux】守护进程以及实现一个守护进程

1、什么是守护进程守护进程也称为精灵进程,是运行在后台进程的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 (1)脱离于控制终端并且在后台运行 (2)不受用户登录注销的影响,它们一直在运行着 Linux大多数服务器就是用守护进程实现的,例如:Internet服务器inetd,Web服务器httpd查看系统中的守护进程:使用命令 ps axj 凡是TPGID一

菜鸟成长记 3696

什么是守护进程?守护进程的特性

 守护进程守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生 的事件。他们常常在系统引导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、 Web服务http等。同时,守护进程完成许多系统任务。比如,作业规划进程crond、打印进程lqd等。这里主要说明守护进程的进程结构,以及如何编写守护进

余长富的专栏 2151

linux守护进程

守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行;守护进程一般都以root用户权限运行,因为要使用某些特殊的端口或者资源;守护进程的父进程一般都是init进程,因为它真正的父进程在fork出守护进程后就直接退出了,所以守护进程都是孤儿进程,由init接管;

weixin_45484468的博客 1136
上一篇: 网络编程
下一篇: c开发面试
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值