GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Menjalankan Program C++ Setiap Kali Flash Drive Usb Dimasukkan?

Saya memiliki program C++ yang mengakses pen drive/flash drive USB. Ini berfungsi untuk flash drive yang saat ini dimasukkan. Program C++ normal tidak dijalankan sampai kita menjalankannya. Tapi saya ingin program berjalan secara otomatis setiap kali flash drive dimasukkan. Bagaimana saya bisa melakukannya?

Jawaban yang Diterima:

Untuk penggunaan umum, Jika Anda ingin menjalankan program Anda untuk penyimpanan USB apa pun. Gunakan driver untuk kecocokan aturan.

  1. Tambahkan udev file aturan

    sudo nano /etc/udev/rules.d/90-detect-storage.rules
    
  2. Tambahkan aturan ini

    ACTION=="add", DRIVERS=="usb-storage", DRIVER=="sd", RUN+="/pathto/yourprogram"
    

    Jika Anda ingin program Anda membedakan disk, sehingga menjalankan operasi yang berbeda, gunakan (Anda dapat memberikan nomor seri atau atribut apa pun yang Anda suka):

    ACTION=="add", DRIVERS=="usb-storage", DRIVER=="sd", RUN+="/pathto/yourprogram $env{ID_VENDOR_ID} $env{ID_MODEL_ID}"
    
  3. Muat ulang semua aturan

    sudo udevadm control --reload-rules
    
  4. Cabut dan pasang kembali flash drive

Catatan:

  • Saya menggunakan aturan ini hanya untuk menguji yang membuat log saat aturan dipicu:

    ACTION=="add", DRIVERS=="usb-storage", DRIVER=="sd", RUN+="/bin/sh -c 'echo $env{ID_VENDOR_ID} $env{ID_MODEL_ID} >> /home/username/Desktop/usb-storage.log'"
    
  • Anda dapat mengomentari aturan yang tidak Anda inginkan dengan menambahkan # ke awal baris. File aturan dapat berisi beberapa aturan.

  • Untuk memeriksa semua env yang tersedia variabel, gunakan:

    ACTION=="add", DRIVERS=="usb-storage", RUN+="/bin/sh -c 'echo == >> /home/username/Desktop/usb-storage-env.log; env >> /home/username/Desktop/usb-storage-env.log'"
    
  • Untuk memeriksa parameter yang akan digunakan untuk kecocokan aturan, jalankan:

    sudo udevadm info --name=/dev/sdb1 --attribute-walk
    

Referensi:

  • Berikan ATTR{idVendor} sebagai argumen dalam skrip udev
  • Menulis aturan udev oleh Daniel Drake

Ubuntu
  1. Bagaimana Cara Menyalin Isi Drive Usb (flash) Secara Otomatis Ke Direktori Lain?

  2. Tidak Dapat Membuat Usb yang Dapat Di-boot di Mac?

  3. Cara memasang USB flash drive di Linux

  1. Cara Mengenkripsi Drive USB di Ubuntu 18.04 LTS

  2. Cara Menginstal Ubuntu di USB Flash Drive

  3. Bagaimana cara membuat Memtest86+ yang dapat di-boot pada USB flash drive?

  1. Cara memformat hard disk, USB flash drive, dan kartu SD di OS dasar / Ubuntu

  2. Cara membuat drive USB Live Ubuntu yang dapat di-boot

  3. Cara menginstal Ubuntu lengkap pada USB Flash Drive