首页 > 其他分享 >udev启动systemd服务并传递内核参数

udev启动systemd服务并传递内核参数

时间:2023-03-23 16:58:06浏览次数:28  
标签:systemd detect usb service udev 内核 my

使用udev规则启动systemd服务并传递内核参数

udev rules

创建udev规则文件/etc/udev/rules.d/99-usb-detect.rules

# Media automounting
SUBSYSTEM=="block", ACTION=="add",TAG+="systemd",ENV{SYSTEMD_WANTS}="my_usb_detect@%k.service"
#SUBSYSTEM=="block", ACTION=="remove", TAG+="systemd",ENV{SYSTEMD_WANTS}="my_usb_detect@%k.service"
#SUBSYSTEM=="block", ACTION=="change", TAG+="systemd",ENV{SYSTEMD_WANTS}="my_usb_detect@%k.service"

%k: $kernel, %k The kernel name for this device.

[email protected]

创建/lib/systemd/system/[email protected]

[Unit]
Description=usb detect service

[Service]
Type=simple
ExecStart=/usr/local/bin/upgrade.sh %I

#[Install]
#WantedBy=multi-user.target

%I:对应my_usb_detect@%k.service 中的%k

测试脚本

创建/usr/local/bin/usb_detect.sh

#!/bin/bash
sleep 10
echo "[info]: run $0 $1"

测试

重启设备后
插入一个u盘(sda),查看执行结果

systemctl status my_usb_detect@sda

udev规则使用RUN直接调用脚本,耗时任务会被中断,无法正常执行,耗时任务建议使用udev触发systemd来处理。

标签:systemd,detect,usb,service,udev,内核,my
From: https://www.cnblogs.com/Amumu1/p/17248032.html

相关文章

  • 初探内核(三)
    pwnhubkheap学完了基础的三种内核漏洞,回头看看前一周的pwnhub公开赛的这道kheap先查看start.sh文件和init文件可以看到开启了kaslr、smep,双核单线程运行......
  • 初探内核(一)
    貌似两个月没更新博客了,因为这两个月我都在nssctf刷题,目前的进度是207/377,但是由于nssctf糟糕的libc环境和我不想在glibc沉沦了,所以打算学点新东西。初探内核......
  • Linux 6.3内核Btrfs性能得到提升10倍优化
    Btrfs是一种支持写入时复制(COW)的文件系统,被广泛运用于各种 ​​Linux​​ 操作系统之中,目标是取代ext3文件系统,改善ext3的限制。Btrfs是一种支持写入时复制(COW)的文......
  • amd64/UEFI/systemd/gnome/gentoo安装过程记录
    注意本人使用install-amd64-minimal-20220123T170538Z.isostage3-amd64-desktop-systemd-20220116T170534Z.tar.xz配置信息CPU:Inteli5-8300H(8)@4.000GHzGPU:NVIDIA......
  • Linux系统中内核态、用户态和零拷贝技术解析
    ​第一:存储介质的性能话不多说,先看一张图,下图左边是磁盘到内存的不同介质,右边形象地描述了每种介质的读写速率。一句话总结就是越靠近cpu,读写性能越快。了解了不同硬件介质......
  • init 和 systemd:Linux守护进程
    现代Linux都采用systemd来作为守护进程,例如在Ubuntu18.04上它们都指向同一个systemd,$ll/sbin/init/sbin/init->/lib/systemd/systemd*$ll/bin/systemd/......
  • linux内核定时器
    内核定时器概念与单片机定时器不同内核定时器基础知识structtimer_list{}相关操作函数时间转换函数静态定义结构体变量并且初始化向内核注册定时器删除......
  • Linux内核中的IS_ERR()实现
    1、前言对于任何一个指针来说,必然有三种情况:一种是有效指针,一种是NULL,也就是空指针,一种是错误指针,也就是无效指针,在Linux内核中,所谓的错误指针就是指其已经到达了内核空间......
  • 数据库内核:VScode远程调试
    准备虚拟机这里我使用Docker的Ubuntu的镜像去创建容器。下载Ubuntu镜像dockerpullubuntu:20.04创建子网创建容器时需要设置固定IP,所以先要在docker中......
  • Linux内核编译
    首先从kernel.org下载我们需要的内核(比如linux-4.19.275),然后实现自己的LSM安全模块(我的叫mika),就可以开始编译了。cp/boot/config-5.4.0-144-generic.configmakemenuco......