我正试图想出一个脚本,该脚本将监视/proc/mounts,并在检测到只读文件系统时通知它。
在python中,一种方法是将/proc/mounts的值存储在一个列表中,并在循环中继续执行cat /proc/mounts
,并检查";ro";实体。但我想用投票或选择来代替这个,因为这很有效,而且只有在事件发生时才采取行动。
我认为投票比选择更可取。据我所知,我们可以将/proc/mounts的fd放在exceptfds中进行选择,当出现异常时,我们会收到通知(请在这里纠正我,行中的更改会作为异常发出信号?(。只是为了测试,我正在一个常规文件上尝试它——现在,当我打开并更改e.txt
时,这个文件会打印整个文件吗?目前还没有。我错过了什么?
import select
f = open("e.txt")
while True:
r,w,x = select.select([],[],[f])
f.seek(0)
print f.read()
< check for ro entity and do further>
对于/proc/mounts监控:
import select
f = open("/proc/mounts")
while True:
r,w,x = select.select([],[],[f])
f.seek(0)
print f.read()
< check for ro entity and do further>
我如何使用选择或投票来实现这一点。
这确实适用于/proc/mounts监控。对行的任何更改都被视为异常,因此将/proc/mounts的fd添加到exceptfds(这是select.select([],[],[f])
选择中的第三个参数(
import select
f = open("e.txt")
while True:
r,w,x = select.select([],[],[f])
f.seek(0)
print f.read()