GNU/Linux >> Znalost Linux >  >> Linux

Použití pravidel udev ke spuštění skriptu při vložení USB

Měl jsem stejný problém. Toto fungovalo pro mě:

Zkuste skript zkopírovat do /usr/local/bin a změňte adresář ve vašem .rules soubor.

Také nevím, co je SYSFS, ale raději bych použil vlastnosti ATTR.

Následující řádek je obsahem mého .rules soubor:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/backup.sh"

notify-send vyžaduje přístup k vaší relační sběrnici DBus, který nemůže mít ze dvou důvodů:

  • Žádné informace o relaci. Když skript spustí udev, neví nic o tom, kde jste přihlášeni nebo zda jste vůbec přihlášeni. Vícesedadlo s X11 je stále složité, ale přepínání uživatelů funguje pro X11 i konzolové relace. Mnoho lidí také používá SSH, VNC a NX přes síť.

    (DISPLAY=:0 fungovalo by polovinu času, ale to je stále hádání v nejlepším případě.)

  • Odepřeno zásadou DBus. I když váš skript nějakým způsobem najde vaši relaci X11, nebude moci odesílat upozornění, protože skript běží jako root místo vašeho uživatelského účtu.


Linux
  1. Jak spustit skript??

  2. Jak spustit skript při připojení nebo odpojení zařízení USB pomocí UDEV

  3. Paralelní spuštění skriptu shellu

  1. Bash skript:Použití příkazu script z bash skriptu pro protokolování relace

  2. automatizace relace telnet pomocí bash skriptů

  3. Po přihlášení spusťte bash skript

  1. Procesy v relaci v interaktivním prostředí versus ve skriptu?

  2. Spusťte bash skript jako démona

  3. Spusťte skript prostředí jako jiný uživatel