linux – Upstart调用脚本(用于插入USB驱动器)

linux – Upstart调用脚本(用于插入USB驱动器),第1张

概述我知道Ubuntu(和Fedora)使用 Upstart而不是经典的System V init守护进程(SysVinit). 我想知道如何检测何时插入USB驱动器,安装它并将一些文件复制到它.我希望Upstart为此调用我自己的脚本. 如果可能的话,我希望Upstart为特定的USB驱动器调用脚本,这样除了我的“即时备份”USB驱动器之外,我将获得每个USB驱动器的正常功能. 如果Upstart可 我知道Ubuntu(和Fedora)使用 Upstart而不是经典的System V init守护进程(SysVinit).

我想知道如何检测何时插入USB驱动器,安装它并将一些文件复制到它.我希望Upstart为此调用我自己的脚本.

如果可能的话,我希望Upstart为特定的USB驱动器调用脚本,这样除了我的“即时备份”USB驱动器之外,我将获得每个USB驱动器的正常功能.

如果Upstart可以将USB驱动器标识字符串作为参数发送到我的脚本,我想这将是理想的解决方案,因为我可以在我的脚本中使用ID字符串并且可能使脚本处理两个USB驱动器而不用变化很大.

作为旁注,您是否知道除了Upstart以外的任何其他系统处理USB驱动器,网络安装文件系统等等? (截至SysVinit seems not to.)

解决方法 upstart似乎没有附带“usb设备插入”信号开箱即用.到目前为止,重点一直是做与init完全相同的事情,并且“酷炫的广告功能”将来也会如此.

From the Fedora wiki:“……现在让Upstart成为现实,即使它现在只能像SysV那样运作,也能让我们开始顺利过渡到这个模型.”

幸运的是,您可以通过让udev运行脚本来发送自定义的upstart信号来实现未来,这样新贵可以调用您的备份脚本.您也可以让udev直接调用您的备份脚本.

udev已经有一种简单的方法来在插入和拔出设备时运行脚本.请参阅rename your usb hard drive’s device name with udev rules.在我的系统上,我将不得不使用udevadm monitor –env而不是教程的udevmonitor –env.在学完本教程后,您将创建另一个类似于此的udev规则:

echo 'SUBSYstem=="block",ID_SERIAL_SHORT=="101A9041C67D182E",\name="myusbdrive",\RUN+="/my/backup/script $env{name}"' > /etc/udev/rules.d/S96-mydrive.rules

将ID_SERIAL_SHORT替换为您设备的实际ID,将$env {name}替换为您的脚本查找备份设备所需的任何udev环境变量.您可能需要对脚本进行后台处理以避免阻止udev.

如果你想使用upstart,你可以让你的udev规则运行/ sbin / initctl发出备用VARIABLE = $env {VARIABLE} …然后在/etc/event.d中以行开头写一个脚本从备份开始.

有关对DBus执行相同 *** 作的提示,另请参阅How can I listen for ‘usb device inserted’ events in Linux,in Python?.如果您希望登录用户运行usermode“watch for backup drive”守护程序,则DBus可能更方便.

总结

以上是内存溢出为你收集整理的linux – Upstart调用脚本(用于插入USB驱动器)全部内容,希望文章能够帮你解决linux – Upstart调用脚本(用于插入USB驱动器)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1033477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存