如何在Debian Jessie(Raspberry Pi)中自动运行脚本(插入USB内存时)?

奥米德1989

我正在使用Raspberry Pi。以前,我曾经udev rule在插入USB闪存时运行脚本。以下是/etc/udev/rules.d/10-usbstick.rules文件的内容

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1" SYMLINK+="usbflash", RUN+="/path/to/myhup.sh"

然后在myhup.sh

#!/bin/sh
nohup /path/to/myscript.sh

这种方法效果很好。插入USB闪存后,它将自动开始运行myscript.sh文件。

但是,升级到Jessie后,它不起作用。插入USB闪存时,会出现以下错误:

[ 2026.652130] sd 0:0:0:0: [sda] No Caching mode page found
[ 2026.652238] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 2029.532163] ntfs: (device sda1): check_mft_mirror(): $MFT and $MFTMirr (record 0) do not match.  Run ntfsfix or chkdsk.
[ 2029.532355] ntfs: (device sda1): load_system_files(): $MFTMirr does not match $MFT.  Mounting read-only.  Run ntfsfix and/or chkdsk.

我决定使用systemd service方法。因此,我将其更改udev rule为:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1" SYMLINK+="usbflash", RUN+="systemctl start myusb.service"

并创建了myusb.service具有以下内容的:

[Unit]
Description=run myscript
[Service]
Type=oneshot
ExecStart=/path/to/myscript.sh
[Install]
WantedBy=multi-user.target

接着:

sudo chmod 644 /lib/systemd/system/myusb.service
sudo systemctl daemon-reload
sudo systemctl enable myusb.service
sudo reboot

这次,它不再起作用,并给出了以下错误:

[ 2026.652130] sd 0:0:0:0: [sda] No Caching mode page found
[ 2026.652238] sd 0:0:0:0: [sda] Assuming drive cache: write through

那么,当插入USB闪存时(在Jessie中),我如何自动运行脚本?

这里

如果要在udev中运行systemd单元,则现在只需命名该单元即可(请参阅参考资料man systemd.device)。例如,如果您查看(/ usr)/lib/udev/rules.d/99-systemd.rules,则应找到类似的示例

SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_WANTS}+="bluetooth.target"

其中有2个要点:必须添加TAGsystemd,并且必须将设置SYSTEMD_WANTS为单元的(基本)名称。如果没有使用任何规则SYSTEMD_WANTS,则您的版本可能尚不支持此功能。

所以在你的情况下

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", SYMLINK+="usbflash", TAG+="systemd", ENV{SYSTEMD_WANTS}+="myusb.service"

请注意,udev规则中缺少逗号。请注意,您列出的2个错误[sda]仅是信息性的,而不是问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您如何在Debian Jessie中配置自动登录?

来自分类Dev

如何在Debian Jessie中安装libunity-dev?

来自分类Dev

如何在Debian jessie中安装R-base sid?

来自分类Dev

Raspberry Pi Jessie导入错误时区

来自分类Dev

如何在Debian Jessie中禁用X服务器自动启动?

来自分类Dev

如何在运行Node.js的Raspberry Pi(Debian)上解决LIBUSB_ERROR_BUSY

来自分类Dev

如何在Debian Jessie(8)中安装mongodb 3.x?mongodb网站仅支持Wheezy

来自分类Dev

如何在debian测试/ jessie中修复Shellshock安全漏洞?

来自分类Dev

如何在Linux Debian 8 Jessie(Gnome 3 DE)中激活热键?

来自分类Dev

如何在Debian Jessie 8.2中为ssh设置动态消息(motd)?

来自分类Dev

如何在Debian Jessie上安装ffmpeg?

来自分类Dev

如何在Debian无头服务器(Raspberry Pi)上启动时启动服务?

来自分类Dev

如何在Debian Jessie上运行mod_mono(缺少软件包libapache2-mod-mono)?

来自分类Dev

在Boot Raspberry Pi上的前景中运行脚本

来自分类Dev

在Raspberry Pi上独立运行脚本

来自分类Dev

Raspberry Pi在启动后运行脚本

来自分类Dev

如何在Debian Jessie上安装最新的NodeJS?

来自分类Dev

如何在Debian Jessie中正确设置环境变量?

来自分类Dev

如何在Debian Jessie上安装wimtools软件包?

来自分类Dev

在Debian jessie上的zfsonlinux中自动挂载

来自分类Dev

如何在Raspberry Pi上运行javafx

来自分类Dev

chown和chmod不起作用(Raspberry Pi 2-Jessie)

来自分类Dev

如何在Raspberry Pi中同步时钟?

来自分类Dev

双击时如何在终端中运行脚本

来自分类Dev

双击时如何在终端中运行脚本

来自分类Dev

如何在debian中从USB安装Ubuntu?

来自分类Dev

如何在Debian 10中自动登录?

来自分类Dev

在Windows中插入USB记忆棒(如autorun.inf)时,如何在Ubuntu中自动运行文件和脚本?

来自分类Dev

在Windows中插入USB记忆棒(如autorun.inf)时,如何在Ubuntu中自动运行文件和脚本?

Related 相关文章

  1. 1

    您如何在Debian Jessie中配置自动登录?

  2. 2

    如何在Debian Jessie中安装libunity-dev?

  3. 3

    如何在Debian jessie中安装R-base sid?

  4. 4

    Raspberry Pi Jessie导入错误时区

  5. 5

    如何在Debian Jessie中禁用X服务器自动启动?

  6. 6

    如何在运行Node.js的Raspberry Pi(Debian)上解决LIBUSB_ERROR_BUSY

  7. 7

    如何在Debian Jessie(8)中安装mongodb 3.x?mongodb网站仅支持Wheezy

  8. 8

    如何在debian测试/ jessie中修复Shellshock安全漏洞?

  9. 9

    如何在Linux Debian 8 Jessie(Gnome 3 DE)中激活热键?

  10. 10

    如何在Debian Jessie 8.2中为ssh设置动态消息(motd)?

  11. 11

    如何在Debian Jessie上安装ffmpeg?

  12. 12

    如何在Debian无头服务器(Raspberry Pi)上启动时启动服务?

  13. 13

    如何在Debian Jessie上运行mod_mono(缺少软件包libapache2-mod-mono)?

  14. 14

    在Boot Raspberry Pi上的前景中运行脚本

  15. 15

    在Raspberry Pi上独立运行脚本

  16. 16

    Raspberry Pi在启动后运行脚本

  17. 17

    如何在Debian Jessie上安装最新的NodeJS?

  18. 18

    如何在Debian Jessie中正确设置环境变量?

  19. 19

    如何在Debian Jessie上安装wimtools软件包?

  20. 20

    在Debian jessie上的zfsonlinux中自动挂载

  21. 21

    如何在Raspberry Pi上运行javafx

  22. 22

    chown和chmod不起作用(Raspberry Pi 2-Jessie)

  23. 23

    如何在Raspberry Pi中同步时钟?

  24. 24

    双击时如何在终端中运行脚本

  25. 25

    双击时如何在终端中运行脚本

  26. 26

    如何在debian中从USB安装Ubuntu?

  27. 27

    如何在Debian 10中自动登录?

  28. 28

    在Windows中插入USB记忆棒(如autorun.inf)时,如何在Ubuntu中自动运行文件和脚本?

  29. 29

    在Windows中插入USB记忆棒(如autorun.inf)时,如何在Ubuntu中自动运行文件和脚本?

热门标签

归档