Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在通过udev on plug out删除之前使用挂载点获取PID

如何在通过udev on plug out删除之前使用挂载点获取PID
EN

Stack Overflow用户
提问于 2016-07-13 05:54:45
回答 2查看 298关注 0票数 0

我想知道在Debian OS中删除存储设备时,udev在卸载和删除之前使用任何挂载点的进程的机制。

当我跳过删除udev规则文件中的目录时,它得到了很多进程,包括内核等。

如果有人在笔式驱动器中上传或下载时从系统中移除笔式驱动器,我想在屏幕上实现一个警告消息。

请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2016-07-13 08:55:48

您可以使用lsof命令。此命令列出哪个进程正在使用哪个文件。输出包含命令、PID、用户PID、文件类型、设备、侧边、文件名等。您可以使用grep for mount point来查找谁在使用您的设备。

语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#lsof  | grep <mount point>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#lsof  <mount point>

另一种选择是使用fuser命令。它显示使用给定文件/目录的进程It

语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#fuser <mount point >
票数 1
EN

Stack Overflow用户

发布于 2016-07-15 11:14:58

感谢您的回复。我是通过fuser得到的。我的问题是被用户删除后如何处理。在我的系统中,热插拔是由udev规则管理的。其显示指定文件名/media/pen-drive不存在。删除操作是ACTION==" Remove ",ENV{dir_name}!="",RUN+="/bin/sh -c '/bin/fuser -m /media/%E{dir_name'",RUN+="/bin/umount -l /media/%E{dir_name}",RUN+="/bin/rmdir /media/%E{dir_name}“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38343625

复制
相关文章
linux使用udev配置U盘自动挂载
udev 是一个为你的计算机提供设备事件的 Linux 子系统。通俗来讲就是,当你的计算机上插入了像网卡、外置硬盘(包括 U 盘)、鼠标、键盘、游戏操纵杆和手柄、DVD-ROM 驱动器等等设备时,代码能够检测到它们。这样就能写出很多可能非常有用的实用程序,而它已经很好了,普通用户就可以写出脚本去做一些事情,比如当某个硬盘驱动器插入时,执行某个任务。
happlyfox
2021/03/04
9.3K0
通过vim-plug安装UltiSni
安装plug (https://github.com/junegunn/v... curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent...
py3study
2020/01/02
6610
Python 技术篇-通过进程名获取进程pid实例演示,使用psutil库获取进程id
psutil.process_iter() 方法可以返回进程列表信息,再通过匹配名称,获取进程的 pid 即可。
小蓝枣
2021/12/01
5.2K0
Python 技术篇-通过进程名获取进程pid实例演示,使用psutil库获取进程id
内核中通过进程PID获取进程的全部路径
我们遇到的Dos路径.如果想转化为NT路径(也就是 C:\xxxx)类似的格式 需要自己实现. 具体原理如下:
IBinary
2019/09/29
3.8K0
内核中通过进程PID获取进程的全部路径
Linux使用sshfs通过ssh挂载远端机器
今天自己的开发机器突然磁盘剩余空间报警,再弄一块硬盘不太现实,于是想到了公司有一台机器上挂了一个大的磁盘,于是,我把目标偷偷锁定到了那个机器上。 折腾了一下,发现在那台机器上只有我的用户,但没有root权限,于是打消了使用nfs的念头。就在我郁闷的时候,无意间发现原来linux上有个sshfs的命令,可以通过ssh来挂载远端机器。看到这,我的心里邪恶的笑了。 工具很简单,下面就是使用sshfs挂载远端目录的步骤: 安装 $ sudo yum install -y sshfs 挂载 $ mkdir ~/rem
kongxx
2018/05/14
1.1K0
根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID
随着 Kubernetes 越来越火爆,运维人员排查问题难度越来越大。比如我们收到监控报警,某台 Kubernetes Node 节点负载高。通过 top 或者 pidstat 命令获取 Pid,问题来了,这个 Pid 对应那个 Kubernetes Pod 呢?
YP小站
2020/07/21
3.4K0
Python获取pid和进程名字
     如果pip不识别,就进入下载的python目录下面执行:。。。Python36\Scripts
py3study
2020/01/10
3K0
EasyNVR平台如何在Windows系统中使用挂载盘?
去年我们对EasyNVR平台升级了新内核,新内核版EasyNVR平台默认的录像存储位置在EasyNVR/mediaserver/data/hls中,若用户有其他需求,也可以修改存储路径,将录像文件存储在其他指定的磁盘。具体可参照这篇文章:【操作教程】新内核版EasyNVR如何更改录像文件的存储位置?
TSINGSEE青犀视频
2022/05/07
4370
EasyNVR平台如何在Windows系统中使用挂载盘?
去年我们对EasyNVR平台升级了新内核,新内核版EasyNVR平台默认的录像存储位置在EasyNVR/mediaserver/data/hls中,若用户有其他需求,也可以修改存储路径,将录像文件存储在其他指定的磁盘。具体可参照这篇文章:【操作教程】新内核版EasyNVR如何更改录像文件的存储位置?
EasyNVR
2022/05/12
4810
EasyNVR平台如何在Windows系统中使用挂载盘?
pandas | 如何在DataFrame中通过索引高效获取数据?
上篇文章当中我们简单介绍了一下DataFrame这个数据结构的一些常见的用法,从整体上大概了解了一下这个数据结构。今天这一篇我们将会深入其中索引相关的应用方法,了解一下DataFrame的索引机制和使用方法。
TechFlow-承志
2020/07/10
13.6K0
pandas | 如何在DataFrame中通过索引高效获取数据?
[Oracle 11g RAC安装]UDEV设置
到这里已经可以在系统中看到openfiler的磁盘,可是重启后路径名会改变,这时需要利用udev固定路径名
bsbforever
2020/08/19
1.8K0
Python 技术篇-通过进程名称、PID杀死windows进程的两种方法,获取当前运行程序的pid
方法一: 利用 os 杀死进程。 import os # 通过进程名称杀死进程 os.system('taskkill /f /im %s' % 'python.exe') # 通过pid杀死进程 os.system('taskkill /f /pid %s' % '20500') 获取当前运行程序的 pid # 获取当前运行程序pid print(os.getpid()) 方法二: 利用 subprocess 杀死进程。 import subprocess # 通过pid杀死进程 subproces
小蓝枣
2020/09/24
10.3K0
Python 技术篇-通过进程名称、PID杀死windows进程的两种方法,获取当前运行程序的pid
Initramfs_正在生成initramfs
一、initramfs是什么 在2.6版本的linux内核中,都包含一个压缩过的cpio格式的打包文件。当内核启动时,会从这个打包文件中导出文件到内核的rootfs文件系统,然后内核检查rootfs中是否包含有init文件,如果有则执行它,作为PID为1的第一个进程。这个init进程负责启动系统后续的工作,包括定位、挂载“真正的”根文件系统设备(如果有的话)。如果内核没有在rootfs中找到init文件,则内核会按以前版本的方式定位、挂载根分区,然后执行 /sbin/init程序完成系统的后续初始化工作。 这个压缩过的cpio格式的打包文件就是initramfs。编译2.6版本的linux内核时,编译系统总会创建initramfs,然后把它与编译好的内核连接在一起。内核源代码树中的usr目录就是专门用于构建内核中的initramfs的,其中的initramfs_data.cpio.gz文件就是initramfs。缺省情况下,initramfs是空的,X86架构下的文件大小是134个字节。
全栈程序员站长
2022/09/22
3.2K0
LINUX下 Udev详解[通俗易懂]
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但是devfs有一些严重的限制,从 2.6.13版本后移走了。目前取代他的便是文本要提到的udev--一个用户空间程序。 目前很多的Linux分发版本采纳了udev的方式,因为它在Linux设备访问,特别是那些对设备有极端需求的站点(比如需要控制上千个硬盘)和热插拔设备(比如USB摄像头和MP3播放器)上解决了几个问题。下面我我们来看看如何管理udev设备。 实际上,对于那些为磁盘,终端设备等准备的标准配置文件而言,你不需要修改什么。但是,你需要了解udev配置来使用新的或者外来设备,如果不修改配置,这些设备可能无法访问,或者说Linux可能会采用不恰当的名字,属组或权限来创建这些设备文件。你可能也想知道如何修改RS-232串口,音频设备等文件的属组或者权限。这点在实际的Linux实施中是会遇到的。 为什么使用udev 在此之前的设备文件管理方法(静态文件和devfs)有几个缺点: * 不确定的设备映射。特别是那些动态设备,比如USB设备,设备文件到实际设备的映射并不可靠和确定。举一个例子:如果你有两个USB打印机。一个可能称为 /dev/usb/lp0,另外一个便是/dev/usb/lp1。但是到底哪个是哪个并不清楚,lp0,lp1和实际的设备没有一一对应的关系,因为他可能因为发现设备的顺序,打印机本身关闭等原因而导致这种映射并不确定。理想的方式应该是:两个打印机应该采用基于他们的序列号或者其他标识信息的唯一设备文件来映射。但是静态文件和devfs都无法做到这点。 *没有足够的主/辅设备号。我们知道,每一个设备文件是有两个8位的数字:一个是主设备号 ,另外一个是辅设备号来分配的。这两个8位的数字加上设备类型(块设备或者字符设备)来唯一标识一个设备。不幸的是,关联这些身边的的数字并不足够。 */dev目录下文件太多。一个系统采用静态设备文件关联的方式,那么这个目录下的文件必然是足够多。而同时你又不知道在你的系统上到底有那些设备文件是激活的。 *命名不够灵活。尽管devfs解决了以前的一些问题,但是它自身又带来了一些问题。其中一个就是命名不够灵活;你别想非常简单的就能修改设备文件的名字。缺省的devfs命令机制本身也很奇怪,他需要修改大量的配置文件和程序。; *内核内存使用,devfs特有的另外一个问题是,作为内核驱动模块,devfs需要消耗大量的内存,特别当系统上有大量的设备时(比如上面我们提到的系统一个上有好几千磁盘时) udev的目标是想解决上面提到的这些问题,他通采用用户空间(user-space)工具来管理/dev/目录树,他和文件系统分开。知道如何改变缺省配置能让你之大如何定制自己的系统,比如创建设备字符连接,改变设备文件属组,权限等。 udev配置文件 主要的udev配置文件是/etc/udev/udev.conf。这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项:
全栈程序员站长
2022/08/02
12.4K0
LINUX下 Udev详解[通俗易懂]
Plug It In!(匈牙利算法)
有m个插头,n个电器,每个插座上只能插选定的几个设备,且一次只能插一个设备,你有一个接口转换器,可以使得其中一个插座一次可以插3个设备,问你同一时间最多有多少设备可以供电。
Here_SDUT
2022/08/11
1950
如何在EasyCVR通过接口获取告警的录像以及快照?
EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。为了便于用户二次开发、集成与调用,我们也提供了丰富的API接口供用户使用,有需要的用户可以查看官方API文档。
TSINGSEE青犀视频
2023/05/22
4130
emlog插件挂载点使用和自定义名称方法
对于初学的emlog插件开发者来说,插件挂载点定义真是一个麻烦事!官方的插件定义不是很详细。所以小白给大家提供点思路。     其实挂载点主要就是两个函数doAction和addAction:
奶糖味的代言
2018/04/16
8240
EMLOG插件挂载点以及说明
挂载点:doAction('adm_main_top') 所在文件:admin/views/default/header.php 描述:后台红线区域扩展 挂载点:doAction('adm_head') 所在文件:admin/views/default/header.php 描述:后台头部扩展:可以用于增加后台css样式、加载js等 挂载点:doAction('adm_siderbar_ext') 所在文件:admin/views/default/header.php 描述:后台侧边栏 功能扩展 子菜
Youngxj
2018/06/06
1.4K0
windows-根据进程PID 获取进程路径
通过GetModuleFileNameEx来获取. 他是在Psapi头文件中.但是还需要加载lib.
IBinary
2019/12/26
3.8K0
点击加载更多

相似问题

在/etc/fstab中的挂载点之前启动udev

15

如何在使用UDEV挂载设备后运行shell脚本

23

挂载命令pid

10

Gluster奇怪的问题与共享挂载点,如独立挂载。

11

如何在组件挂载之前获取数据?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文