文章目录

  • 什么是udev?
  • 一、什么是守护进程?
    • 守护进程的特点
    • 守护进程与后台进程的区别?
  • 二、编写守护进程的程序

什么是udev?

udev是设备管理工具,udev以守护进程的方式运行,通过监听内核发来的事件来管理etc/dev下面的设备文件。udev运行在用户态,能够根据系统中设备的状态动态更新设备文件

一、什么是守护进程?

Linux daemon(守护进程)是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或者事件,不需要用户输入。常见地守护进程:系统日志 syslogdweb服务器httpd邮件服务器sendmail数据库服务器mysqld,守护进程通常以d结尾。

udev守护进程:能够根据系统中设备的状态动态更新设备文件。

守护进程的特点

1.生存周期长,随操作系统的启动而启动,关闭而关闭。
2.与终端无关。终端的关闭不会影响守护进程的退出。
3.守护进程运行在后台,不占用终端,终端可以执行其他命令。
4.守护进程是孤儿进程,由init进程收养。
守护进程的开机自启动:
1. sudo vi etc/rc.local
2 .在rc.local里面加入守护进程可执行文件的路径
3.重启系统

守护进程与后台进程的区别?

1.守护进程与终端无关,后台进程与终端挂钩,要往终端输入或输出
2.守护进程关闭终端不受影响,守护进程随终端的关闭而退出。

二、编写守护进程的程序

#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <time.h>
#include <stdio.h>
#include<stdbool.h>static bool flag = true;
void handler(int);
void handler(int sig)
{printf("I got a signal %d\nI'm quitting.\n", sig);flag = false;
}
int judement()//判断可执行程序是否在运行
{FILE *fp;char readbuf[128]={'\0'};char* cmd="ps -elf |grep xxx文件名 |grep -v grep";fp=oppen(cmd,"r");fread(readbuf,128,1,fp);if(strstr(readbuf,"xxx文件名")!=NULL)return 0;elsereturn -1;
} int main()
{time_t t;int fd;if(-1 == daemon(0, 0))//创建后台进程{printf("daemon error\n");exit(1);}//设置信号处理函数struct sigaction act;act.sa_handler = handler;sigemptyset(&act.sa_mask);act.sa_flags = 0;if(sigaction(SIGQUIT, &act, NULL)){printf("sigaction error.\n");exit(0);}//进程工作内容while(flag){if(judement()==-1){//调用函数判断想执行的文件是否在运行,-1没有运行,0在运行systrm("可执行文件的名字 &");//没有执行,调用system函数和&在后台运行}return 0;
}

Linux热插拔udev机制相关推荐

  1. Linux:udev机制详解

    如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略.在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev ...

  2. Linux驱动——mmc card热插拔检测机制(十)

    Linux驱动--mmc card热插拔检测机制(十) 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客: [sd card] ...

  3. linux进程管理机制,linux进程管理,linux进程管理机制

    linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...

  4. Linux内核同步机制之(四):spin lock【转】

    转自:http://www.wowotech.net/kernel_synchronization/spinlock.html 一.前言 在linux kernel的实现中,经常会遇到这样的场景:共享 ...

  5. linux驱动模型开发——linux platform总线机制讲解与实例开发

    1.概述: 通常在Linux中,把SoC系统中集成的独立外设单元(如:I2C.IIS.RTC.看门狗等)都被当作平台设备来处理. 从Linux2.6起,引入了一套新的驱动管理和注册机制:Platfor ...

  6. Linux内存管理机制研究

    Linux内存管理机制研究 查看linux系统中处于free状态的内存有两个角度,一个是从内核的角度来看,一个是从应用层的角度来看的. 1.从内核的角度来看free的内存,就是内核目前可以直接分配到, ...

  7. Linux kernel 同步机制(下篇)

    之前的文章 Linux kernel同步机制 在上一部分,我们讨论了最基本常见的几类同步机制,这一部分我们将讨论相对复杂的几种同步机制,尤其是读写信号量和RCU,在操作系统内核中有相当广泛的应用. 读 ...

  8. 文件名为空linux,文件系统:隐匿在Linux背后的机制

    原标题:文件系统:隐匿在Linux背后的机制 在 Linux 中,最直观.最可见的部分就是 文件系统(file system) .下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及 ...

  9. linux内存管理的主要概念是虚拟内存,有关linux内存管理机制的相关内容,linux物理内存和虚拟内存,深入了解Linux内存运行 ......

    在linux中空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然. 这是Linux内存管理的一个优秀特性,区别于Windows的内存管理. 主要特点: 无论物理内存有多大,L ...

最新文章

  1. 人生苦短,不光要用Python,还要在VSCode里用
  2. Matlab符号计算结果过长无法在屏幕中显示的问题
  3. arcgis ERROR:000824 该工具未获得许可
  4. Qt CMake命令参考
  5. 1小时内注册公司 政务中心104个窗口同厅办公
  6. js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
  7. python程序打包为exe可执行文件
  8. 手机在线编程软件Anycodes
  9. 3dmax:3dmax三维VR渲染设置之高级灯光渲染(Vray—VR灯光、VRIES、VR环境光、VR太阳)图文教程之详细攻略
  10. oracle下载jdk需要注册怎么办? jdk8下载
  11. 过期带备案域名扫描工具SEO工具
  12. 2019.02.28 bzoj4199: [Noi2015]品酒大会(sam+线段树)
  13. uniapp开发的多端影视APP,对接的苹果CMS
  14. 京东登录页面(静态页面)
  15. python抓取豌豆荚app数据信息
  16. 学日语小技巧 让Office Word效劳
  17. tp link拨号失败 服务器无响应,【求救】K2提示“等待PPP客户端连接”拨号失败...
  18. 【Windows】清除指定文件类型的默认打开方式
  19. WPF绑定XML数据源
  20. 北京联通KD-YUN-811E改桥接

热门文章

  1. 03.预备知识:算法的复杂度分析
  2. python爬取问卷星内容_Python 自动填写问卷星(适用问卷星的所有类型题目)
  3. python bottle部署_centos6中简单配置nginx+uWSGI+python3+bottle环境新手教程
  4. 学设计的你为什么会迷茫
  5. Portal如何对主题定制开发
  6. 向华为学习奋斗:管理模式的“道”与“术”
  7. 32 WM配置-策略-出库策略5-定义大/小数量的策略M(Large / Small Quantities)
  8. 2016年数学建模A题题目、解题思路、matlab代码(二)
  9. OpenAM之SAML2配置
  10. java计算机毕业设计在线教育系统MyBatis+系统+LW文档+源码+调试部署