Linux热插拔udev机制
文章目录
- 什么是udev?
- 一、什么是守护进程?
- 守护进程的特点
- 守护进程与后台进程的区别?
- 二、编写守护进程的程序
什么是udev?
udev是设备管理工具
,udev以守护进程
的方式运行,通过监听内核发来的事件来管理etc/dev下面的设备文件。udev运行在用户态
,能够根据系统中设备的状态动态更新设备文件
一、什么是守护进程?
Linux daemon(守护进程)是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或者事件,不需要用户输入。常见地守护进程:系统日志 syslogd
,web服务器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机制相关推荐
- Linux:udev机制详解
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略.在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev ...
- Linux驱动——mmc card热插拔检测机制(十)
Linux驱动--mmc card热插拔检测机制(十) 备注: 1. Kernel版本:5.4 2. 使用工具:Source Insight 4.0 3. 参考博客: [sd card] ...
- linux进程管理机制,linux进程管理,linux进程管理机制
linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...
- Linux内核同步机制之(四):spin lock【转】
转自:http://www.wowotech.net/kernel_synchronization/spinlock.html 一.前言 在linux kernel的实现中,经常会遇到这样的场景:共享 ...
- linux驱动模型开发——linux platform总线机制讲解与实例开发
1.概述: 通常在Linux中,把SoC系统中集成的独立外设单元(如:I2C.IIS.RTC.看门狗等)都被当作平台设备来处理. 从Linux2.6起,引入了一套新的驱动管理和注册机制:Platfor ...
- Linux内存管理机制研究
Linux内存管理机制研究 查看linux系统中处于free状态的内存有两个角度,一个是从内核的角度来看,一个是从应用层的角度来看的. 1.从内核的角度来看free的内存,就是内核目前可以直接分配到, ...
- Linux kernel 同步机制(下篇)
之前的文章 Linux kernel同步机制 在上一部分,我们讨论了最基本常见的几类同步机制,这一部分我们将讨论相对复杂的几种同步机制,尤其是读写信号量和RCU,在操作系统内核中有相当广泛的应用. 读 ...
- 文件名为空linux,文件系统:隐匿在Linux背后的机制
原标题:文件系统:隐匿在Linux背后的机制 在 Linux 中,最直观.最可见的部分就是 文件系统(file system) .下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及 ...
- linux内存管理的主要概念是虚拟内存,有关linux内存管理机制的相关内容,linux物理内存和虚拟内存,深入了解Linux内存运行 ......
在linux中空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然. 这是Linux内存管理的一个优秀特性,区别于Windows的内存管理. 主要特点: 无论物理内存有多大,L ...
最新文章
- 人生苦短,不光要用Python,还要在VSCode里用
- Matlab符号计算结果过长无法在屏幕中显示的问题
- arcgis ERROR:000824 该工具未获得许可
- Qt CMake命令参考
- 1小时内注册公司 政务中心104个窗口同厅办公
- js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
- python程序打包为exe可执行文件
- 手机在线编程软件Anycodes
- 3dmax:3dmax三维VR渲染设置之高级灯光渲染(Vray—VR灯光、VRIES、VR环境光、VR太阳)图文教程之详细攻略
- oracle下载jdk需要注册怎么办? jdk8下载
- 过期带备案域名扫描工具SEO工具
- 2019.02.28 bzoj4199: [Noi2015]品酒大会(sam+线段树)
- uniapp开发的多端影视APP,对接的苹果CMS
- 京东登录页面(静态页面)
- python抓取豌豆荚app数据信息
- 学日语小技巧 让Office Word效劳
- tp link拨号失败 服务器无响应,【求救】K2提示“等待PPP客户端连接”拨号失败...
- 【Windows】清除指定文件类型的默认打开方式
- WPF绑定XML数据源
- 北京联通KD-YUN-811E改桥接
热门文章
- 03.预备知识:算法的复杂度分析
- python爬取问卷星内容_Python 自动填写问卷星(适用问卷星的所有类型题目)
- python bottle部署_centos6中简单配置nginx+uWSGI+python3+bottle环境新手教程
- 学设计的你为什么会迷茫
- Portal如何对主题定制开发
- 向华为学习奋斗:管理模式的“道”与“术”
- 32 WM配置-策略-出库策略5-定义大/小数量的策略M(Large / Small Quantities)
- 2016年数学建模A题题目、解题思路、matlab代码(二)
- OpenAM之SAML2配置
- java计算机毕业设计在线教育系统MyBatis+系统+LW文档+源码+调试部署